官方使用指南快速索引»点这里 快速导览:
什么是JSONPlaceholder?有啥用?
这是一个开放可调用的API接口,增、改、查、分页查一个简单资源
什么时候需要?
- 当你需要测试一种API调用的方式
- 当你想模拟一些API json数据
- 当你是一个妥妥的新手
你可能需要它
如何使用JSONPlaceholder?
可以使用:
- 浏览器直接访问Get请求,比如
/posts/1/comments
/albums/1/photos
/users/1/albums
/users/1/todos
/users/1/posts
- 可以使用编程语言请求接口
通用接口:
接口 | 对象类型 | 结构 | 公共默认数据量 |
---|---|---|---|
/posts | 帖子 | {"userId":1,"id":1,"title":"string","body":"string"} |
100个 |
/comments | 评论 | {"postId":1,"id":1,"name":"string","email":"string","body":"string"} |
500个 |
/albums | 专辑 | {"userId":1,"id":1,"title":"string"} |
100个 |
/photos | 照片 | {"albumId":1,"id":1,"title":"string","url":"string","thumbnailUrl":"string"} |
5000个 |
/todos | 待办 | {"userId":1,"id":1,"title":"string","completed":false} |
200个 |
/users | 用户 | {"id":1,"name":"string","username":"string","email":"string","address":{"street":"string","suite":"string","city":"string","zipcode":"string","geo":{"lat":"string","lng":"string"}},"phone":"string","website":"string","company":{"name":"string","catchPhrase":"string","bs":"string"}} |
10个 |
自己测试的话,以上数据结构各取所需即可
以上几种数据类型也有关联关系,比如:
/comments?postId=1 == /posts/1/comments
/albums/1/photos
/users/1/albums
/users/1/todos
/users/1/posts
以下使用/todos
为例演示增删改查
GET /posts
GET /posts/1
GET /posts/1/comments
GET /comments?postId=1
POST /posts
PUT /posts/1
PATCH /posts/1
DELETE /posts/1
关于“增”
POST /posts
POST /posts HTTP/1.1
Host: jsonplaceholder.typicode.com
Content-Type: application/json
Content-Length: 75
{
"userId": 2,
"id": 1,
"title": "帖子101",
"body": "帖子的内容"
}
----
response:
{
"userId": 2,
"id": 101,
"title": "帖子101",
"body": "帖子的内容"
}
ID会自动生成,类似数据库里面的自增,并且会返回增加的对象
关于“改”
PATCH /posts/1
PATCH /posts/101 HTTP/1.1
Host: jsonplaceholder.typicode.com
Content-Type: application/json
Content-Length: 76
{
"userId": 2,
"id": 1,
"title": "帖子102",
"body": "帖子的内容2"
}
----
response:
{
"userId": 2,
"id": 1,
"title": "帖子102",
"body": "帖子的内容2"
}
根据ID修改内容,会返回修改后的内容
关于“查”
GET /posts
查全部,默认是100条
GET /posts/1
根据ID查询对象
GET /posts/1 HTTP/1.1
Host: jsonplaceholder.typicode.com
X-Total-Count: 10
关于“删”
DELETE /posts/1
根据ID删除对象
DELETE /posts/100 HTTP/1.1
Host: jsonplaceholder.typicode.com
http response code 200,无返回值
关于“分页查”
GET /posts?_start=10&_limit=10
使用query param分页查
GET /posts?_start=10&_limit=10 HTTP/1.1
Host: jsonplaceholder.typicode.com
There’s also a custom header X-Total-Count in the response.
关于“根据ID查多个”
/posts?id=2&id=5&id=10&id=12
根据多个ID查询相应的posts
/posts?&userId=2&userId=5&userId=10&userId=12
根据多个userId查询相应的posts
GET /posts?userId=2&userId=5&userId=10&userId=12 HTTP/1.1
Host: jsonplaceholder.typicode.com
X-Total-Count: 10
尝试自己搭一个?
rename the request url https://my-json-server.typicode.com/[your name]/[your project name]
, like https://my-json-server.typicode.com/CzyerChen/jsonplaceholderdemo
like default posts
, you can call GET https://my-json-server.typicode.com/CzyerChen/jsonplaceholderdemo/posts
, and you will get results.
Awesome! you can mock data and write into db.json
.
like the demo in https://github.com/CzyerChen/jsonplaceholderdemo
, call https://my-json-server.typicode.com/CzyerChen/jsonplaceholderdemo/userinfo
and return the data
[
{
"id": 1,
"userName": "string",
"age": 11,
"mail": "string@demo.com",
"sex": 0,
"active": 1
},
{
"id": 2,
"userName": "string",
"age": 12,
"mail": "string@demo.com",
"sex": 1,
"active": 0
},
{
"id": 3,
"userName": "string",
"age": 13,
"mail": "string@demo.com",
"sex": 2,
"active": 1
}
]
扩展的可能?
增加简单的认证接口?比如jwt/oauth2?
issues
中也有提到,是否能够提供初级使用者所需的认证类接口,或许可以自己根据源码来开发哦