drf_持续更新02

6 篇文章 0 订阅

RESTful API规范

restful规范

前后端分离要写接口  ---》api接口---》接口测试工具postman

restful规范是什么,如何来的?

       REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。

RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。

这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源。

restful规范 --10条

-1 数据的安全保障

        url链接一般都采用https协议进行传输--》它比http安全

-2 接口特征表现--》url中带api标识

        -https://api.xxx.com/books/
        -https://www.xxxx.com/api/books/

-3 多数据版本共存--》url中带版本信息

        https://api.xxxx.com/v1/books
        https://www.xxx.com/api/v2/books

-4 数据即是资源,均使用名词(可复数)

        -->前后台交互,交互的数据称之为资源

          -数据即资源,前后端交互的数据称之为资源,url尽量使用名字
        -https://127.0.0.1/api/v1/books/  -->表示对图书操作:增加,删除,查询,修改,都用这一个地址
        -https://127.0.0.1/api/v1/get_all_books/ # 不符合restful规范
        -https://127.0.0.1/api/v1/delete_books/# 不符合restful规范

-5 资源操作由请求方式决定

        -get 请求获取数据(获取所有,获取单条)
        -post 新增数据
        -put 修改数据
        -delete 删除数据
        https://api.baidu.com/books - get请求:获取所有书
        https://api.baidu.com/books/1 - get请求:获取主键为1的书
        https://api.baidu.com/books - post请求:新增一本书书
        https://api.baidu.com/books/1 - put请求:整体修改主键为1的书
        https://api.baidu.com/books/1 - delete请求:删除主键为1的书

-6  请求地址中带过滤条件

        ---》只针对于搜索所有接口

-7 响应状态码(两层)

正常响应

  • 响应状态码2xx
    • 200:常规请求
    • 201:创建成功

重定向响应

  • 响应状态码3xx
    • 301:永久重定向
    • 302:暂时重定向

客户端异常

  • 响应状态码4xx
    • 403:请求无权限
    • 404:请求路径不存在
    • 405:请求方法不存在

服务器异常

  • 响应状态码5xx
    • 500:服务器异常
 -8 响应中带错误信息

        {
            "code": 101,
            "msg": "用户名或密码错误"
        }

-9 不同操作,返回格式符合如下标准

            GET /collection:返回资源对象的列表(数组)
                        [{name:西游记,price:19},{name:三国,price:19}]
            GET /collection/resource:返回单个资源对象 
                        {name:三国,price:19}
            POST /collection:返回新生成的资源对象
                         {name:三国,price:19}
            PUT /collection/resource:返回完整的资源对象
                         {name:三国演绎,price:19}
            DELETE /collection/resource:返回一个空文档
           ---》或者这么做
                    {
                        code:100
                        msg:查询成功
                        restult:[{name:西游记,price:19},{name:三国,price:19}]
                    }


     -10 响应中带链接

序列化反序列化

         序列化: 数据转换格式

        序列化(Serialization):将数据从其原始的数据结构或对象转换为一种通用的格式,如 JSON、XML 等,以便于在不同的应用程序之间传输、存储或显示。在编程中,序列化通常是为了将数据进行持久化或网络传输,从而能够在不同的环境中保持数据的一致性。

        反序列化(Deserialization):将序列化后的数据重新转换为原始的数据结构或对象。反序列化通常是在接收到序列化数据后,需要将其还原为可操作的数据类型,以便进行进一步的处理。

序列化反序列化两个阶段:

            -序列化:把我们识别的数据转换成指定的格式提供给别人

                        python对象/字典 - - - >>  json格式 

                        data = {"name": "John", "age": 30, "city": "New York"}

                        json_string = json.dumps(data)

                        print(json_string) # 输出为 JSON 字符串:


             -反序列化:把别人提供的数据转换/还原成我们需要的格式

                        json格式 - - - > > python对象/字典

                        json_string = '{"name": "John", "age": 30, "city": "New York"}'

                        data = json.loads(json_string)

                        print(data) # 输出为 Python 字典

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值