JSONPlaceholder - 免费的在线REST服务
日常开发、测试、教学或者分享中,可能在使用需要请求数据的时候遇到一些困难:
- 需要测试数据对处理逻辑进行测试;
- 进行前端开发时后端接口尚未开发;
- 教程或分享中不可以使用真实业务数据;
- 在一些对数据格式和内容没有要求的场景,手动编写数据进行 mock 比较麻烦;
于是这就涉及到我们需要使用一些公开的且最好是免费的API来尽可能快速地满足我们这些需求场景。
JSONPlaceholder
是一个提供免费的在线 REST API 的网站,我们在开发时可以使用它提供的 url 地址测试下网络请求以及请求参数。或者当我们程序需要获取一些假数据、假图片时也可以使用它。
网站地址:http://jsonplaceholder.typicode.com/
其返回的数据为 JSON 格式,且同时支持 HTTP 和 HTTPS 这两种请求类型。
JSONPlaceholder 提供了 6 类常见的数据:
- /posts: 100 posts
- /comments: 500 comments
- /albums: 100 albums
- /photos: 5000 photos
- /todos: 200 todos
- /users: 10 users
同时提供的这些数据之间存在一些关联,比如 post 会有一些 comment,albums 会涉及 photos 等等。
接口支持所有的 HTTP 方法,遵循 Restful 风格,所以可以进行如下请求:
- GET /posts
- GET /posts/1
- GET /posts/1/comments
- GET /comments?postId=1
- POST /posts
- PUT /posts/1
- PATCH /posts/1
- DELETE /posts/1
更多使用案例可以参考官方文档
1,获取文章(贴子)数据
使用如下地址可以获取到文章列表假数据,共 100 条。每条内容都有帖子 ID、发贴人 ID、标题、以及内容:
http://jsonplaceholder.typicode.com/posts
提示
在网页中浏览 JSON 文件时,建议在浏览器中安装 FeHelper 插件。
根据传入的贴子 ID,可以得到具体某个贴子的数据,里面同样包含贴子 ID、发贴人 ID、标题、以及内容:
http://jsonplaceholder.typicode.com/posts/88
下面根据发贴人 ID 来查询他发的所有贴子,里面同样包含贴子 ID、发贴人 ID、标题、以及内容:
http://jsonplaceholder.typicode.com/posts?userId=8
2. 获取评论数据
下面获取所有文章的所有评论,共 500 条。每条内容都包含有贴子 ID、评论 ID、评论人姓名、评论人邮箱、评论内容:
http://jsonplaceholder.typicode.com/comments
下面根据帖子 ID 获取指定贴子的评论(有两种方式),里面包含贴子 ID、评论 ID、评论人姓名、评论人邮箱、评论内容:
http://jsonplaceholder.typicode.com/posts/6/comments
http://jsonplaceholder.typicode.com/comments?postId=6
3. 获取相册数据
下面获取所有相册数据,共 100 条。相册数据与贴子数据相比就是少了内容项(body):
http://jsonplaceholder.typicode.com/albums
根据 ID 获取指定相册数据:
http://jsonplaceholder.typicode.com/albums/8
根据用户 ID 获取该用户的所有相册数据:
http://jsonplaceholder.typicode.com/albums?userId=8
4. 获取待办事项(todo-list)数据
下面获取所有待办数据,共 200 条。待办数据特点是除了标题外,还有个布尔类型属性项(completed)表示任务是否完成:
http://jsonplaceholder.typicode.com/todos
根据 ID 获取指定待办数据:
http://jsonplaceholder.typicode.com/todos/6
根据用户 ID 获取该用户的所有待办数据:
http://jsonplaceholder.typicode.com/todos?userId=9
5. 获取用户数据
下面获取所有用户数据,共 10 条。数据包含姓名、电话、地址等各种用户信息。
http://jsonplaceholder.typicode.com/users
根据 ID 获取指定用户数据。
http://jsonplaceholder.typicode.com/users/5
6. 获取照片数据
下面获取所有相簿里的所有照片数据,共 5000 条。数据包含照片 ID、相簿 ID、标题、照片原图地址、照片缩略图地址:
http://jsonplaceholder.typicode.com/photos
根据 ID 获取指定照片数据:
http://jsonplaceholder.typicode.com/photos/8
根据相簿 ID 获取该相簿下所有的照片数据:
http://jsonplaceholder.typicode.com/photos?albumId=5