【问题标题】:JSONAPI implementationJSONAPI 实现
【发布时间】:2020-06-06 11:19:20
【问题描述】:

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

问题是处理来自 DB 的响应并将其转换为 JSONAPI 标准的最佳位置在哪里?是模型层吗?控制器?查看或添加表示层?

我一直在考虑一种通过使用模板引擎(pug、Handlebars..etc)来实现这一点的方法,但这是个好主意吗?因为模板引擎目标是 HTML 而不是 JSON?

如果使用模板引擎呈现 JSON 是个好主意,是否有任何可用的 JSON 模板引擎来生成 JSON?

可以查看任何建议或指南或编写良好的示例吗?

谢谢。

【问题讨论】:

  • 我想不出你为什么想要一个模板引擎。应该只是JSON.stringify()

标签: node.js json express api-design json-api


【解决方案1】:

我是在我的 NestJS 应用程序的控制器中使用jsonapi-serializer 完成的。我为 JSON API 序列化创建了一个服务。对我来说,这似乎是最好的关注点分离。控制器从服务中获取数据,然后调用序列化服务,然后将响应传回给调用者。

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2021-02-19
    • 2015-12-10
    • 2018-12-17
    • 1970-01-01
    • 2018-11-10
    • 2021-04-29
    • 2016-04-05
    • 2015-12-18
    相关资源
    最近更新 更多