api接口和restful规范
api接口
规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介
接口文档
可以手动写(公司有平台,录到平台里,)
自动生成(coreapi,swagger)
restful规范(10条,规定了这么做,公司可以不采用)
1 数据的安全保障,通常使用https进行传输
2 域名(会有api标识)
https://api.example.com 尽量将API部署在专用域名
https://127.0.0.0:8080/api/ API标识
3 请求地址中带版本,或者在请求头中
https://127.0.0.0:8080/api/v1/
4 任何东西都是资源,均使用名词表示 (尽量不要用动词)
-https://api.example.com/v1/books/
-https://api.example.com/v1/get_all_books(不符合规范)
5 通过请求方式区分不同操作
get 获取
post 新增数据
put/patch patch是局部更新,put是全部(基本上更新都用put)
delete 删除
6 在请求路径中带过滤
https://api.example.com/v1/?name='金'&order=asc
https://api.example.com/v1/name?sortby=name&order=asc
7 返回数据中带状态码
http请求的状态码(2,3,4,5)
返回的json格式中到状态码(标志当次请求成功或失败)
8 返回数据中带错误信息
错误处理,应返回错误信息,error当做key
9 对不同操作,返回数据符合如下规范(这只是规范)
GET /books 返回资源对象的列表(数组) [{},{},{}]
GET /books/1 返回单个资源对象 {}
POST /books 返回新生成的资源对象 {新增的书}
PUT /books/1 返回完整的资源对象 {返回修改后的}
PATCH /books/1 返回完整的资源对象 {返回修改后的}
DELETE /books/1 返回一个空文档
{status:100,msg:查询成功,data:null}
10 返回结果中带连接
drf介绍和安装
django-rest-framework是一个只针对于Django的app
可以更方便的使用Django写出符合resful规范的接口(不用也可以写符合规范的接口)
# 安装
pip3 install djangorestframework
https://www.django-rest-framework.org/
# 简单使用
# 注册app
INSTALLED_APPS = [
'rest_framework',
]
# 路由
path('test/', views.Test.as_view()),
# 视图类
from rest_framework.views import APIView
from rest_framework.response import Response
class Test(APIView):
def get(self,request):
return Response({'name':'a','age':'1'})
def post(self,request):
return Response({'name': 'b', 'age': '2'})
# 在请求地址中访问
http://127.0.0.1:8000/test/