JSONAPI实现

问题描述 投票:1回答:1

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

可以查看任何建议,指南或写得好的例子吗?

谢谢。

node.js json express api-design json-api
1个回答
0
投票

我使用jsonapi-serializer在NestJS应用的控制器中完成了此操作。我创建了JSON API序列化服务。在我看来,这似乎是最好的分离关注点。控制器从服务中获取数据,然后调用序列化服务,然后将响应传递回调用方。

© www.soinside.com 2019 - 2024. All rights reserved.