我一直在进行研究,以找出实现标准JSONAPI(https://jsonapi.org)的方法,但我没有找到真相或令人信服的方法来实现这一点。
为了代表一个真实的例子,我们有以下回应
{
"data": {
"type": "articles",
"id": "1",
"attributes": {
// ... this article's attributes
},
"relationships": {
// ... this article's relationships
}
}
}
因此,我们拥有的预期实体是文章,也可能是作者。这些实体存储在数据库(SQL或NoSQL)中,并且可以使用任何工具查询数据(Mongoose,Knex,typeorm..etc)
数据库的预期返回结果是(从文章中选择第一)
{
"name":"article1",
"id":"1"
}
问题是在哪里处理来自数据库的响应并将其转换为JSONAPI标准的最佳位置?是模型层吗?控制器?查看或添加表示层?
我一直在考虑通过使用模板引擎(pug,Handlebars..etc)来实现此目的的方法,但这是一个好主意吗?因为模板引擎的目标是HTML而不是JSON?
如果最好使用模板引擎来呈现JSON,是否有可用的JSON模板引擎来生成JSON?
有什么建议或指南或写得很好的例子吗?
谢谢。
最佳答案
我使用jsonapi-serializer在NestJS应用的控制器中完成了此操作。我创建了JSON API序列化服务。在我看来,这似乎是最好的分离关注点。控制器从服务中获取数据,然后调用序列化服务,然后将响应传递回调用方。
关于node.js - JSONAPI实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60348618/