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文件中posts
跟comments
是有关联的,他们的关联经由过程的就是comments
下postId
属性,postId
对应的就是posts
的id
。
比方comments
下postId: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
上面这个途径猎取的就是comments
下id
为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
上面这个途径就是猎取posts
的id:2
所关联的comments
数据:
返回效果:
[
{
"id": 1,
"body": "some comment1111",
"postId": 2
}
]