Django—— restful 设计风格
RESTful Api设计风格
协议:API 与用户的通信协议,总是使用 HTTPS 协议
域名:应该尽量将 API 部署在专用域名之下,如果确定 API 很简单,不会有进一步的扩展,可以考虑放在主域名之下。
版本:
应该将 API 的版本放在 URL 中:https://www.sunck.wang/api/v1.0
将版本号放在 HTTP 头信息中:https://www.sunck.wang/students
路径:表示 API 的具体网址,每个网址代表一种资源,所以网址中不能有动词,只能有名词,并且所用的名词往往与数据库的表名对应。数据库中的表示记录同种数据的集合,所以 API 中的名词也应该使用复数。
获取所有学生:
https://www.sunck.wang/api/v1... 错误写法
https://www.sunck.wang/api/v1... 正确写法
使用正确的 HTTP 请求方法

例子

过滤信息
如果资源数较多,服务器不能将所有数据一次全部返回给客户端,API 应该提供参数,过滤返回结果
例子

注意:参数的设计允许存在冗余,即允许 API 路径和 URL 参数偶尔有重复
状态码
服务器向客户端返回的状态码和提示信息


错误处理
如果错误码是4xx,就应该向用户返回错误信息,一般来说,返回的信息中将 error 作为键名,出错的信息作为键值即可
{
error:'Invalid API KEY',
}
响应结果
针对不同的操作,服务器向用户返回结果应该符合规范

使用链接相关的资源
返回结果中提供了链接,链向了其他的 API 方法,使得用户不查看文档,也知道下一步应该做什么
示例
{
link:"www.sunck.wang/grades/"
}
{
"link":{
"rel":"collection www.sunck.wang/index/",
"href":"www.sunck.wang/grades/",
"title":"List of Grades",
"type":"application/json",
}
}
键
rel:表示这个 API 与当前网址的关系
href:表示 API 路径
title:表示 API 的标题
type:表示返回的类型
其他:服务器返回的数据尽量使用 JSON 格式,避免使用 XML 格式
API 文档规范要求
一、 写明该接口的功能是什么
二、 请求的 URL 是什么
三、 请求方式是什么(POST、GET、 DELETE、PUT、 PATCH等)
四、 参数是什么,此处还需说明你的参数名、参数类型、是否必填、参数的简单解释
五、 请求成功时的响应内容(实际开发中,要与前端同事沟通使用什么样的数据结构),并且对其中的字段做出说明(包括含义、数据类型,数据结构<字符串,数组,字典等>)
六、 请求失败时的响应内容,并且对其中的字段做出说明(包括含义、数据类型,数据结构<字符串,数组,字典等>)包括单独的对错误码的说明
七、 请求样例(返回结果部分要包括成功的情况和失败的情况)
八、 最好写上文档的编写人和编写时间(可不写)
Demo:
功能:获取某人的下属
- URL:”people/api/v1/ subordinate”
请求参数说明:
请求成功参数说明
data 内的响应参数说明

请求失败参数说明

code值说明
Code 说明
1 成功
2 该人已经离职
3 请求参数不完整
4 参数类型错误
样例:
请求参数 uid 1
# 请求成功样例
{
,
'msg': 'ok',
'data':[
{
,
'name': 'Tom',
'position': '教师'
},
{
,
'name’: 'Lucy',
'position': '助教'
}
]
}
# 请求失败样例
{
,
'msg': '该人已离职'
}
作者:rottengeek
原文链接:http://t.cn/RgC0MIP
第 19 期Python实战班正在火热招生中
第 8 期自动化运维班正在招生中
第4 期 golang 正在招生中
详情扫码咨询

免费视频 戳戳戳!
Django—— restful 设计风格的更多相关文章
- Django RESTful Web Services, 此书学DRF不错
全名为<Django RESTful Web Services: The easiest way to build Python RESTful APIs and web services wi ...
- 在django restful framework中设置django model的property
众所周知,在django的model中,可以某些字段设置@property和setter deleter getter,这样就可以在存入数据的时候进行一些操作,具体原理请参见廖雪峰大神的博客https ...
- 4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍
4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍 天涯明月笙 关注 2018.02.20 19:23* 字数 762 阅读 135 ...
- 3- vue django restful framework 打造生鲜超市 - model设计和资源导入
3- vue django restful framework 打造生鲜超市 - model设计和资源导入 使用Python3.6与Django2.0.2(Django-rest-framework) ...
- django restful framework 一对多方向更新数据库
目录 django restful framework 序列化 一 . 数据模型: models 二. 序列化: serializers 三, 视图: views 四, 路由: urls 五. 测试 ...
- $Django RESTful规范
一 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度 ...
- Django restful
1.restful api的规范 API与用户的通信协议,总是使用HTTPs协议. 域名 https://api.example.com 尽量将API ...
- RESTFUL 设计风格
RESTFUL 规范总结: Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标 ...
- 7- vue django restful framework 打造生鲜超市 -商品类别数据展示(上)
Vue+Django REST framework实战 搭建一个前后端分离的生鲜超市网站 Django rtf 完成 商品列表页 并没有将列表页的数据json 与前端的页面展示结合起来 讲解如果将dr ...
随机推荐
- Atom 绝赞插件
文件图标: file-icons 根据不同文件后缀名显示不同类型图标 标签栏根据不同文件格式显示色彩: filetype-color 在标签栏不同格式文件显示不同的颜色的标题,支持二度设置. 小地图: ...
- Flex布局及其应用
什么是弹性盒子? 弹性盒子是 CSS3 的一种新的布局模式.相对于传统的依赖于display+position+float的布局方式,弹性盒子更加以有效的方式来对一个容器中的子元素进行排列.对齐和分配 ...
- php操作redis的两个个小脚本
redis这东西,查询起来没有mysql那么方便,只能自己写脚本了.下面是工作中写的两个小脚本 第一个脚本,查找有lottery|的键,将他们全部删除|打印出来 <?php $redis = n ...
- Jmeter入门3 http请求—content-type与参数
本文讲三种content-type以及在Jmeter中对应的参数输入方式 第一部分:目前工作中涉及到的content-type 有三种: content-type:在Request Headers里, ...
- Sublime Text 3中文乱码
Sublime Text 3是很好的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开GBK的代码文件,如果里面有中文的话,就会乱码,如下所示: ...
- 动态代理与HOOK(与oc isa 替换)
HOOK:面向函数,解决函数调用拦截与替换的问题: 动态代理:面向对象,解决对象的动态替换问题: 动态代理的实现方案: 1.经典代理机制: 2.子类化机制:oc语言的isa替换是这额解决方案的经典案例 ...
- cocos2d-x(十一)Lua开发飞机大战-6-加入子弹
接下来我们为飞机加入子弹,首先创建一个BulletLayer: module("BulletLayer",package.seeall) local bulletBatchNode ...
- BZOJ1188:[HNOI2007]分裂游戏(博弈论)
Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏.该游戏的规则试:共有n个瓶子,标号为0,1,2.....n-1,第i个瓶子中装有p[i]颗巧克力豆,两个人轮流取豆子,每一轮每人选择3个 ...
- 【转】[置顶] 在Android中显示GIF动画
gif图动画在Android中还是比较常用的,比如像新浪微博中,有很多gif图片,而且展示非常好,所以我也想弄一个.经过我多方的搜索资料和整理,终于弄出来了,其实github上有很多开源的gif的展示 ...
- Kafka设计解析(七)Kafka Stream
转载自 技术世界,原文链接 Kafka设计解析(七)- Kafka Stream 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka ...
