| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Django REST Framework API和RESTful接口规范 -> 正文阅读 |
|
[Python知识库]Django REST Framework API和RESTful接口规范 |
APIAPI是指某个应用程序封装好的一些函数,是提供给其他应用程序或开发人员使用的。通过API,可以方便的使用的本应用程序的功能,而无需了解本应用程序的内部源码。 Web API是API中的一类,它的功能与广义上的API是一样的,只是它提供给外界的是一些url规则而非函数,包括下面4个部分: url:url链接;
|
HTTP请求方法 | 资源操作 | ?幂等 | 安全 |
GET? | 从服务器取出资源(一项或多项) | 是 | 是 |
POST | 在服务器新建一个资源 | 否 | 否 |
PUT | 在服务器更新资源(客户端提供改变后的完整资源) | 是 | 否 |
PATCH | 与PUT类似,用于更新资源,区别在于PATCH代表部分更新 | 否 | 否 |
OPTIONS? | ?检测服务器所支持的请求方法,响应头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。 | 是 | 是 |
ELETE | DELETE(删除) | 是? | ?否 |
幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。
安全性:对该REST接口访问,不会使服务端资源的状态发生改变。
通过在url上传递参数的形式提交过滤条件。如:
https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置
https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
HTTP状态码
1xx(信息):通信传输协议级信息
1XX系列响应代码仅在与HTTP服务器沟通时使用,平常极少使用。
2xx(成功):表示客户端的请求已成功接受
200(OK):表示REST API成功执行了客户端请求的任何操作;
201( Created):用户新建资源成功。
202(Accpted):已经接受请求并加入了处理队列,但处理尚未完成。
204(No Content):服务器成功处理,但没有内容可返回。常用于PUT、POST或者DELETE请求的响应。
204响应绝不能包含消息体,因此总是在头字段之后的第一个空行终止。
3xx(重定向 ):表示客户端必须执行一些其他操作才能完成其请求
301(Moved Permanently):请求的URL已永久移走,并设计了新的URL,客户端应该使用新的URL。
REST API应在响应的Location头中指定新的URL,并且将旧的URL请求都定向到新的URL。
302(Found):与301类似,但资源只是临时被移动,客户端应继续使用原有URL。
302 是执行URL重定向的常用方式。
304(Not Modified):如果客户端在发送GET请求时附上if-Modified-Since报头,并且从报头指定版本开始从未修改过该资源,则说明客户端的缓存资源是最新的, 要求客户端使用缓存以节省资源。
此状态代码类似于204,响应正文必须为空。
4xx(客户端错误):此类错误状态代码指向客户端
400(Bad Request):这是一个通用的客户端错误状态,表示客户端请求的语法错误,服务器无法理解。
401(Unauthorized):客户端试图对一个受保护的资源进行操作,却没有提供正确的认证证书(令牌、用户名、密码错误)。
响应必须包含WWW-Authenticate头字段,其中包含适服务器将接受哪种认证。
403(Forbidden):与401错误相对,表明客户端的请求是正确的,但用户没有资源的必要权限。
该响应代码常用于一个资源只允许在特定时间段内访问,或者允许特定IP地址的用户访问的情况。
404(Not Found):服务器无法根据客户端的请求找到资源(网页)。
405(Method Not Allowd):客户端尝试使用资源不允许的HTTP方法。比如,一个资源只支持GET方法,但是客户端使用PUT方法访问。
405响应必须包含Allow标头,该标头列出资源支持的HTTP方法。
406(Not Acceptable):用户请求的格式不可得。比如用户请求JSON格式,但是只有XML格式。
5xx(服务器错误):服务器负责这些错误状态代码
500(Internal Server Error):这是一个通用的服务器错误响应。对于大多数web框架,如果在执行请求处理代码时遇到了异常,它们就发送此响应代码。
?
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 11:52:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |