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

Copy Highlighter-hljs
# 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__"
Copy Highlighter-hljs
ret = {
code: 1000,
data:{
id:1,
name:'小强',
depart_id:http://www.xyxyxy.com/api/v1/depart/8/
}
}
posted @   流年中渲染了微笑  阅读(236)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
CONTENTS