json-server的关联图谱详解(Relationships)

json-server的关联图谱

json-server黑白常好用的一款模仿REST API的东西,文档也很细致和周全.
概况:json-server
而个中的关联图谱是它异常壮大的一个功用,能够异常轻易完成多个路由之间关联数据的猎取。

示例数据

官网上关于关联图谱的案例异常好,我这里在它示例的基础上稍以革新,举行申明,起首我这里编写了一个原始数据,db.json:

{
  "posts": [
    { "id": 1, "title": "post的第一个title", "author": "typicode" },
    { "id": 2, "title": "post的第二个title", "author": "tangcaiye" }
  ],
  "comments": [
    { "id": 1, "body": "some comment1111", "postId": 2 },
    { "id": 2, "body": "some comment2222", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}

这里对这个db.json数据内容解释一下:
这个json文件中postscomments是有关联的,他们的关联经由过程的就是commentspostId属性,postId对应的就是postsid
比方commentspostId:2的对象关联的就是posts下的{ "id": 2, "title": "post的第二个title", "author": "tangcaiye" }

_embed

json-server中的_embed就是用来猎取包括下级资本的数据.
比方我json-server服务器的端口号是8081,然后我的要求途径是http://localhost:8081/posts/2?_embed=comments
这个途径猎取的就是posts下的id为2的数据和它关联的comments的数据:{ "id": 1, "body": "some comment1111", "postId": 2 }
输出效果为:

{
  "id": 2,
  "title": "post的第二个title",
  "author": "tangcaiye",
  "comments": [
    {
      "id": 1,
      "body": "some comment1111",
      "postId": 2
    }
  ]
}

_expand

假如理解了_embed那末_expand它也就很轻松了,_expand猎取的是包括上级资本的数据:
途径:http://localhost:8081/comments/2?_expand=post
上面这个途径猎取的就是commentsid为2的数据和它关联的上级资本post,也就是posts下的:
{ "id": 1, "title": "post的第一个title", "author": "typicode" }
输出效果:

{
  "id": 2,
  "body": "some comment2222",
  "postId": 1,
  "post": {
    "id": 1,
    "title": "post的第一个title",
    "author": "typicode"
  }
}

只猎取下级资本

有时候我们能够想只猎取下级资本,能够经由过程:
途径:http://localhost:8081/posts/2/comments
上面这个途径就是猎取postsid:2所关联的comments数据:
返回效果:

[
  {
    "id": 1,
    "body": "some comment1111",
    "postId": 2
  }
]
    原文作者:唐菜也
    原文地址: https://segmentfault.com/a/1190000010449453
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞