REST API 设计

作业要求

模仿 Github,设计一个博客网站的 API

参考网址及博客

Github API v3 overview
微软

REST简介

在 2000 年,Roy Fielding 提议使用表述性状态转移 (REST) 作为设计 Web 服务的体系性方法。 REST 是一种基于超媒体构建分布式系统的架构风格。 REST 独立于任何基础协议,并且不一定绑定到 HTTP。 但是,最常见的 REST 实现使用 HTTP 作为应用程序协议。
基于 HTTP 的 REST 的主要优势在于它使用开放标准,不会绑定 API 的实现,也不会将客户端应用程序绑定到任何具体实现。

具体实现

博客网址

假设该博客网址为:https://api.testblog.com

一、登陆

  • 命令
curl -u username -p password https://api.testblog.com
  • 结果
返回的状态码 对应结果
2xx 请求成功
4xx 请求异常
  • 可能的几种错误:
返回的状态码 对应错误
401 密码不正确
403 访问过于频繁
404 账户不存在
  • 例如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.testBlog/#abuse-rate-limits"
}

二、请求资源

通过GET命令请求资源,返回JSON格式的数据。

1. 查看用户的所有博客基本信息

curl -i "https://api.testblog.com/username"

2. 查看用户的个人信息:

curl -i "https://api.testblog.com/username/info"

3. 查看评论

curl -i "https://api.testblog.com/username/articlename/comment"

4. 查找博客

curl -i "https://api.testblog.com/username/search?key=yourkeyword"

三、新建资源

通过POST命令新建一个资源

1. 发布新博客

curl -i "https://api.testblog.com/username/new" -d "{"title":"yourtitle","content":"yourcontent","date":"date"}"

2. 发布新评论

curl -c "your_comments" "https://api.testblog.com/username/articlename/comment/new"

替换资源

通过PUT命令替换一个资源,需上传更新后的博客内容和所在页面。

1. 更新博客

curl -i "https://api.testblog.com/username/articlename/update" -d "{"title":"yourtitle","content":"yourcontent","date":"date"}"

2. 更新评论

curl -c "your_comments" "https://api.testblog.com/username/articlename/comment/update" 

删除资源

利用DELETE命令在服务器删除一个资源。

1. 删除博客

curl -i "https://api.testblog.com/username/articlename/delete"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章