【一】WEB应用模式
1)前后端开发模式
- 前后端混合模式图
- 前后端分离模式图
【二】API接口
1)概念
- 规定了前后台信息交互规则的 url 链接,也就是前后台信息交互的媒介
2)四大特点
- url :url链接
- 请求方式:get、post、put、patch、delete
- 请求参数:json 或 xml 格式的 key-value 类型数据
- 响应结果:json或xml格式数据
【三】接口测试工具
# postman官网
https://www.postman.com/
# Apifox官网
https://apifox.com/
# Apifox = Postman + Swagger[接口文档] + Mock[模拟测试数据] + JMeter[压测工具]
【四】restful规范
1)10条规范
1.数据的安全保障(url链接一般采用https)
- https 相较于 http 更安全
2.接口中带api表示
-
出现api字眼就代表请求url链接是完成后台数据交互的
-
https://api.baidu.com https://www.baidu.com/api
3.接口中带版本标识
-
https://api.baidu.com/v1 https://api.baidu.com/v2
4.数据即是资源,一般使用名词(可复数)
-
https://api.baidu.com/users https://api.baidu.com/books https://api.baidu.com/book
5.资源操作由请求方式决定(增删改查)
-
https://api.baidu.com/books # post请求:新增一本书书 https://api.baidu.com/books # get请求:获取所有书 https://api.baidu.com/books/1 # get请求:获取主键为1的书 https://api.baidu.com/books/1 # put请求:整体修改主键为1的书 https://api.baidu.com/books/1 # patch请求:局部修改主键为1的书 https://api.baidu.com/books/1 # delete请求:删除主键为1的书
6.请求地址中带过滤条件
-
https://cn.bing.com/search?q=微博
7.响应状态码
-
http响应状态码
-
临时响应:1xx
-
正确响应:2xx
-
重定向响应:3xx
-
客户端异常:4xx
-
服务端异常:5xx
-
8.响应中带错误信息
-
{code:101,msg:"用户名密码错误"} {code:100,msg:"成功"}
9.服务器向用户返回结果 的规范
-
GET /collection:返回资源对象的列表(数组) # [{name:红楼梦,price:20},{name:西游记,price:30}] GET /collection/resource:返回单个资源对象 # {name:红楼梦,price:20} POST /collection:返回新生成的资源对象 PUT /collection/resource:返回完整的资源对象 PATCH /collection/resource:返回被修改的属性 DELETE /collection/resource:返回一个空文档
10.返回数据总带url链接
2)总结
# 响应数据要有状态码、状态信息以及数据本身
{
"status": 0,
"msg": "ok",
"results":[
{
"name":"肯德基(罗餐厅)",
"location":{
"lat":31.415354,
"lng":121.357339
},
"address":"月罗路2380号",
"province":"上海市",
"city":"上海市",
"area":"宝山区",
"street_id":"339ed41ae1d6dc320a5cb37c",
"telephone":"(021)56761006",
"detail":1,
"uid":"339ed41ae1d6dc320a5cb37c"
},
...
]
}
【五】序列化与反序列化
1)序列化
- 将我们识别的数据(字典、列表、对象)转换成指定的格式(json格式字符串、pickle二进制)提供给别人
- 在django中获得的数据默认是模型对象(queryset对象),但模型对象数据无法直接提供给前端或别的平台使用,须将数据进行序列化,变为json格式字符串,提供别人使用
2)反序列化
-
将别人提供的数据(json格式字符串、pickle二进制)转换成我们需要的格式(字典、列表、对象)
-
前端js提供的json数据,对于python而言是字符串,须进行反序列化转换成模型对象,才能将数据保存到数据库中
【六】drf安装和快速使用
1)概念
django rest framwork
是django框架上一个可以快速实现restful规范接口的快速开发框架
# 安装
pip install djangorestframework
2)使用示例
- app . models
from django.db import models
class Book(models.Model):
name = models.CharField(
verbose_name="书名",
max_length=32
)
price = models.IntegerField(
verbose_name="价格"
)
- Django . url
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/v1/', include('App.urls'))
]
- app . url
from django.contrib import admin
from django.urls import path
from .views import BookView
from rest_framework.routers import SimpleRouter
router = SimpleRouter()
router.register('books',BookView,'books')
urlpatterns = [
]
urlpatterns += router.urls
- app . views
from django.shortcuts import render
from .models import Book
from .serializer import BookSerializer
from rest_framework.viewsets import ModelViewSet
class BookView(ModelViewSet):
serializer_class = BookSerializer
queryset = Book.objects.all()
- 在 app 内创建 serializer.py
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
标签:baidu,入门,api,books,https,import,com,drf
From: https://www.cnblogs.com/Mist-/p/18336155