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