服务计算--设计一个专用于REST API高性能路由库作业9

这次的作业是:设计一个专用于REST API高性能路由库

REST API

rest api 是前后端分离开发的一套标准或者说是一套规范。在rest中,每一个URL代表一种资源,客户端和服务器之间,传递这种资源的某种表现层,客户端通过四个HTTP动词,对服务器端资源进行操作,实现“表现层状态转化”。在学习rest api的时候,我们需要知道:
rest api 的基本操作有四种:

操作意义
GET用来获取资源
POST用来新建和更新资源
PUT用来更新资源
DELETE用来删除资源

当然,rest api 的操作不止这四种,但是对于一个简单的设计而言,这四种操作是最基础的

HTTP状态代码可让你快速了解响应的状态,范围从100+到500+,通常,数字遵循以下规则:

状态代码意义
200+请求已成功
300+请求被重定向到另一个URL
400+从客户端发起的错误已经发生
500+从服务器发起的错误已经发生

比如我们常见的404 NOT FOUND,就是说明服务端没有问题,收到了客户端的请求,但是客户端所请求的资源不存在或者链接失效,服务端就会返回一个404错误,大概是这样:

HTTP/1.1 404 Not found
{
  "message": "It looks like you're lost.",
  "documentation_url": "https://api.blog.com"
}

登陆博客

用户登陆博客,需要提交两样东西——账号名和密码:username和password

curl -u username -p password https://api.bolg.com

用户登陆成功后,才可以进行阅读博客、发表博客等操作
登陆成功后,返回的HTTP状态代码应该是200,表示请求成功。反之,失败也应该返回404,并告知用户错误是“用户名或密码不存在”

阅读博客

阅读博客应该采用GET操作,分为两步,一步是获取某用户的所有博客信息,另一种是获取某一篇博客

获取某用户所有博客的标题(ID)

GET /username/articles

请求命令:curl -i https://api.blog.com/username/articles

根据标题(ID)获得具体某一篇的博客

GET /username/articles/ID

请求命令:curl -i https://api.blog.com/username/articles/ID

响应结果为博客的内容状态

{
     "public":true,
     "title":"hello",
     "username":"luisao"
     "visited": 100"started":10,
     "href":"https://api.blog.com/username/articles/ID",
     "writed_at": "2019-01-01 00:00:00",
     "updated_at": "2019-011-01 00:00:00",
     "action":"GET",
     "tag":"...",
     "content":"……"
}

发表博客

POST /username/articles/博客名

请求命令:curl -u -i -d ‘{“title”:“hello”,“public”:true,“tag”:"…",“content”:"……"}’ https://api.blog.com/articles/test
可以看出,发表博客的参数有title、public、tag、content等

响应结果为博客的发表状态

{
     "isWrited":true,
     "public":true,
     "title":"hello",
     "username":"luisao"
     "visited": 100"started":10,
     "href":"https://api.blog.com/username/articles/ID",
     "writed_at": "2019-01-01 00:00:00",
     "action":"POST",
     "tag":"...",
     "content":"……"
}

更新博客

PUT /username/articles/博客名

请求命令:curl -u -i -d ‘{“title”:“hello”,“public”:false,“tag”:"…",“content”:"……"}’ https://api.blog.com/articles/test/update
更新博客和发表博客的内容差不多

响应结果为博客的更新状态

{
     "isUpdated":true,
     "public":true,
     "title":"hello",
     "username":"luisao"
     "visited": 100"started":10,
     "href":"https://api.blog.com/username/articles/ID",
     "updated_at": "2019-011-01 00:00:00",
     "action":"PUT",
     "tag":"...",
     "content":"……"
}

删除博客

删除博客需要提供博客名或者博客ID:
DELETE /username/articles/博客名

请求命令:curl -i -u https://api.blog.com/luisao/delete/title = “hello”

响应结果为博客的删除状态

{
     "isDeleted":true,
     "title":"hello",
}

其他功能:比如发表评论、收藏文章等,都是类似的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huyaxiaomuge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值