mingyunyuziyou

什么是RESTful API

作者: 秒速五厘米     
 


URI

即统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序 都由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。

传统 api

  • 获取用户信息    get      /api/user/read 

  • 更新用户信息    post    /api/user/ update 

  • 新增用户信息    post    /api/user/add 

  • 删除用户信息    post    /api/user/ delete

resutul apl

  • 面向资源

  • http动词(get,post,put,deletes 等)来描述操作 

  • api 数据格式一般为 json


Restful api

  • 获取用户信息    get        /api/user/1 

  • 更新用户信息    put        /api/user/1 

  • 新增用户信息    post      /api/user 

  • 删除用户信息    delete    /api/user/1


HTTP动词

常用的HTTP动词有下面五个

  • GET(SELECT):从服务器取出资源(一项或多项)。

  • POST(CREATE):在服务器新建一个资源。

  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。

  • DELETE(DELETE):从服务器删除资源。


HTTP 状态码

  • 200 请求成功 

  • 201 创建成功

  • 202 更新成功

  • 400 无效请求 

  • 401 地址不存在

  • 403 禁止访问 

  • 404 请求资源不存在

  • 500 内部错误


API 数据结构格式

  • status         业务状态码

  • message     提示信息 

  • data           数据层


RESTful架构

服务器上每一种资源,比如一个文件,一张图片,一部电影,都有对应的url地址,如果我们的客户端需要对服务器上的这个资源进行操作,就需要通过http协议执行相应的动作来操作它,比如进行获取,更新,删除。


简单来说就是url地址中只包含名词表示资源,使用http动词表示动作进行操作资源
举个例子:左边是错误的设计,而右边是正确的


GET /blog/getArticles --> GET /blog/Articles  获取所有文章
GET /blog/addArticles --> POST /blog/Articles  添加一篇文章
GET /blog/editArticles --> PUT /blog/Articles  修改一篇文章 
GET /rest/api/deleteArticles?id=1 --> DELETE /blog/Articles/1  删除一篇文章