drf—Web_API接口

1、什么是接口

规定了提交请求参数的请求方式、访问其可以获取响应的反馈数据的url链接


2、四大特点

1、url

长得向返回数据的url链接,如https://api.map.baidu.com/place/v2/search

2、请求方式:get\post\put\patch\delete

采用get方式请求上访接口

3、请求参数:json或xml格式的key-value类型数据,如:

ak: 6E823f587c95f0148c19993539b99295
region:上海
query:肯德基
output:json

4、响应结果:json或xml格式的数据

上方请求参数的output参数值决定了响应数据的格式

{
    "status":0,
    "message":"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"
        }
        ...
        ]
}

3、接口文档的编写:YApi

4、接口测试工具:Postman

5、REST接口编写规范

推荐博客:REST接口设计规范

5.1 url

1、使用https协议,保证数据安全

2、使用关键字api标识

3、若数据有版本区别,需要加以区分,如v1、v2

4、获取资源,以资源名作为接口名,不加操作动词来标识

5、基于上一条,若接口与资源无紧联系或者动词本身即为接口核心含义,那么可使用动词

6、群资源一般还有额外的限制条件,如排序、限制条数、分页等等

示例:

https://api.baidu.com/v2/books/

https://api.baidu.com/login

https://api.baidu.com/v1/books/?ordering=-price&limit=3


5.2 五大请求方式

资源操作由请求方式决定,一般涉及到增删改查

特点是url相同,利用cbv视图处理不同的请求

https://api.baidu.com/books

https://api.baidu.com/books/1

1)get请求

获取所有的或者主键为1的书

2)post请求

新增一本书或者新增多本书,不需要主键,都是在books上操作

3)put请求

整体修改资源,整体指的是,以一本书的数据为整体,必须上传该书所有的信息,包括未修改的部分、

4)patch请求

局部修改,局部指的是可以只上传修改的部分,因此patch也能实现put请求的要求,一般使用patch而不使用put

5)delete请求

删除所有的书或者删除指定主键的书


5.3 响应结果

网络状态码

# 正常
200		常规请求
201		创建成功

# 重定向
301		永久重定向
302		暂时重定向

# 客户端异常
403		请求无权限
404		请求路径不存在
405		请求方法不存在

# 服务器异常
500		服务器异常

数据

1、响应数据要有数据状态码状态信息以及数据本身

{
    "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"
        }
        ...
        ]
}

2、需要url请求的资源需要访问资源的请求链接,包括图片,音频和视频等

{
    "status": 0,
    "msg": "ok",
    "results":[
        {
            "name":"肯德基(罗餐厅)",
            "img": "https://image.baidu.com/kfc/001.png"
        }
        ...
        ]
}
posted @ 2019-12-31 17:56  W文敏W  阅读(541)  评论(0编辑  收藏  举报