万事开头难

restfulAPI接口规范/django rest_Framework_环境

一.RESTFUl API设计

1).域名

应该将api部署在专用域名下
https://www.baidu.com/api/

2).版本

应该将API版本号放到路径中
https://www.baidu.com/api/1.0/login
https://www.baidu.com/api/1.2/login

3).路径

api中尽量用名词 不要有动词 

https://127.0.0.1/products/

4).HTTP动词

get     从服务器取出资源
post    在服务器新建资源
put      在服务器更新资源
delete   从服务器删除资源

5).过滤信息

如果记录数据过多,服务器不可能都将他们返回给用户,api应该提供参数,过滤返回结果

6).状态码

1xx    表示当前本次请求还是持续,没结束
2xx    表示当前本次请求成功了 or 完成了
3xx    表示当前本次请求成功 但是服务器重定向
4xx    表示当前本次请求失败 主要是客户端发生了错误
5xx    表示当前本次请求失败  主要是服务端发生了错误

7).错误格式

如果状态码是4xx5xx的时候 服务器返回json格式数据并且key是error

{
  "error":"Invaild API key"  
}

8).返回结果

针对不同操作返回不同的结果
get /all   返回资源对象的列表
get /all/id  返回单个资源字典
post /all    返回新生成的资源对象
put  /all/id  返回修改后的资源对象 
delete /all/id 返回一个空字典

9).超媒体

结果中提供链接,API 的使用者未必知道,URL 是怎么设计的。一个解决方法就是,在回应中,给出相关链接,便于下一步操作。这样的话,用户只要记住一个 URL,就可以发现其他的 URL。这种方法叫做 HATEOAS。



#就是访问一个链接 这里链接中包含多个链接

10).其他

服务器返回的数据格式,应该是json,避免使用xml

 

二.django rest_Framework(drf)

1).什么是drf

drf是建立在django基础之上的web应用开发框架,可以快速的开发接口应用 
在drf中,提供了序列化serialzier的定义,可以帮助我们简化序列化与反序列化的过程,
不仅如此,还提供了丰富的视图类,扩展类,视图集,来简化视图的编写工作 还提供了认证,权限,限流,过滤,分页,接口文档等功能

2).环境安装与配置

要求:

  • Python (3.6, 3.7, 3.8, 3.9, 3.10)
  • Django (2.2, 3.0, 3.1, 3.2, 4.0)

  

pip install rest_rest_framework

然后在settings.py文件中的INSTALLED_APPS中添加上:
'rest_framework',

 

posted @ 2022-08-24 19:27  Bo7-w  阅读(48)  评论(0编辑  收藏  举报