博客网站的REST API设计

作业题目

博客网站的REST API设计

要求

仿造github设计一个博客网站的REST API

REST API介绍

REST是Representational State Transfer(表现层状态转移)的缩写,指的是查看,创建,编辑,删除这几种功能,都能由HTTP中已实现的GET,POST,PUT,DELETE等方法来表示。

API是Application Programming Interface(应用程序接口)的缩写,用来帮助我们了解我们该如何运用一个库。

设计一个博客网站的API

假设该博客网站可以通过https://api.blogexample.com进行访问。

获取用户所有的博客的摘要

在csdn中,访问个人主页即可看到用户所有文章的摘要,因此,我们可以如下表示:

GET /username

如,获得用户heney的所有文章摘要

GET /username/henry

获得一篇文章的详细内容

在csdn中,文章以编号的方式来表示,假设我们要获得henry用户的编号为17341734的文章的详细内容,我们可以如下表示:

GET /username/henry/article/17341734

获得一篇文章的评论内容

假设我们要获得henry用户的编号为17341734的文章的评论,我们可以如下表示:

GET /username/henry/article/17341734/comments

更新一篇文章

更新一篇文章,可以采用PUT方法,需要用户名以及文章编号

PUT /username/henry/article/17341734

发布一篇文章

发布一篇文章,可以采用POST方法

POST /username/henry/article

删除一篇文章

删除一篇文章可以采用DELETE,需要文章的编号以及用户名

DELETE /username/henry/article/17341734

获取某月文章

需要获得某一月的文章,需要用户名以及月份,可以采用GET方法,假设我们要获得henry12月发布的文章

GET /username/henry/months/12

认证登陆

curl -u username https://api.blogexample.com

错误信息

403:访问过于频繁或者是未通过身份验证等
访问过于频繁:

HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8
Connection: close
{
  "message": "You have triggered an abuse detection mechanism and have been temporarily blocked from content creation. Please retry your request again later.",
  "documentation_url": "https://api.blogexample.com/#abuse-rate-limits"
}

未用户认证:

curl -iH 'User-Agent: ' https://api.blogexample.com
HTTP/1.0 403 Forbidden
Connection: close
Content-Type: text/html
Request forbidden by administrative rules.
Please make sure your request has a User-Agent header.
Check https://api.blogexample.com for other possible causes.

401:验证无效时会返回

curl -i https://api.blogexample.com -u foo:bar
HTTP/1.1 401 Unauthorized
{
  "message": "Bad credentials",
  "documentation_url": "https://api.blogexample.com"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值