restful规范
RESTful 规范#
一种软件的架构风格,设计风格,而不是标准,为客户端和服务端的交互提供一组设计原则和约束条件
一 面向资源编程#
每一个url代表一个资源,URL中尽量不要用动词,要用名词,名词和数据库中的表对应
例如:
http://www.xyxyxy.com/salary?page=1&size=10
二 不同的请求方式的不同,进行不同的操作#
GET/POST/PUT/DELETE/PATCH
三 在URL中体现版本(要迭代)#
例如:
http://www.xyxyxy.com/v1/salary?page=1&size=10
http://www.xyxyxy.com/v2/salary?page=1&size=10
https://v4.bootcss.com/?page=1&size=10
https://v3.bootcss.com/?page=1&size=10
四 在URL中体现是否是API#
例如:
http://www.xyxyxy.com/api/v1/salary?page=1&size=10
http://www.xyxyxy.com/api/v2/salary?page=1&size=10
五 在URL中的过滤条件(在url上添加?page=1&size=10)#
http://www.xyxyxy.com/salary?page=1&size=10
六 尽量使用HTTPS#
HTTPS会比http安全
七 响应时设置状态码#
1 信息,服务器收到请求,需要请求者继续执行操作
2 成功,操作被成功接收并处理
3 重定向,需要进一步的操作以完成请求
4 客户端错误,请求包含语法错误或无法完成请求
5 服务器错误,服务器在处理请求的过程中发生了错误
八 返回值#
根据请求方式的不同,返回不同的返回值
GET请求 返回查到所有或单条数据
POST请求 返回新增的数据
PUT请求 返回更新数据
PATCH请求 局部更新 返回更新整条数据
DELETE请求 返回值为空
九 返回错误信息#
返回值携带错误信息(我们在登录的时候,用户名和密码输入错误信息标红显示)
十 Hypermedia API(超链接)#
如果遇到需要跳转的情况 携带调转接口的URL
# url url(r'^publishes/$', views.PublishView.as_view(),name="publish"), url(r'^publishes/(?P<pk>\d+)/$', views.PublishDetailView.as_view(),name="publish_detail"), url(r'^books/$', views.BookView.as_view(),name="books"), url(r'^books/(\d+)/$', views.BookDetailView.as_view(),name="detailbook"), class BookSerializers(serializers.ModelSerializer): publish= serializers.HyperlinkedIdentityField( view_name='publish_detail', # 对应上面的别名 lookup_field="publish_id", # 数据库的字段id lookup_url_kwarg="pk") # 分组命名 class Meta: model=Book fields="__all__"
ret = { code: 1000, data:{ id:1, name:'小强', depart_id:http://www.xyxyxy.com/api/v1/depart/8/ } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现