我一直在进行研究,以找出实现标准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/

10-12 16:16