API接口与DRF快速使用

web开发模式

web开发模式一共有两种:

  • 前后端混合开发:一个程序员即要自己写后端,又要写前端。

image

  • 前后端分离:后端人员只写后端,向前端提供接口,前端人员根据接口编写前端。

image

API接口

api接口是前后端信息交互的媒介,由后端人员编写,前端人员可以向接口发送请求以获取数据。

比如下图是微博的一个api接口:

image

为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。

RESTful规范

RESTful规范是当前api接口主流认可的规范,是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。

RESTful一共有10条规范:

  1. 使用https数据交互,https即是http + tsl/ssl,比http更加安全,交互是加密传输。

  2. 接口地址中带api标识:

  3. 接口地址中带版本标识:

    主要防止项目更新后旧接口失效,不会把旧接口替换掉。

  4. 数据即是资源,均使用名词,不要用动词:

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

    • 新增:post请求
    • 删除:delete请求
    • 修改:put请求
    • 获取:get请求
  6. 地址中带搜索条件:

  7. 响应中带状态码:

    除了http的响应状态码,还应该提供自定义状态码。

  8. 响应中带错误信息,错误信息用error做key:

  9. 针对不同请求,服务器向用户返回的结果应该符合以下规范:

    • GET /books:返回资源对象的列表(数组):

      [
          {
              'id':1,
              'name':'西游记'
          },
          {
              'id':2,
              'name':'红楼梦'
          },
          ...
      ]
      
    • GET /books/1:返回单个资源对象:

      {
          'id':1,
          'name':'西游记'
      }
      
    • POST /books:返回新生成的资源对象:

      {
          'id':3,
          'name':'水浒传'
      }
      
    • PUT /books/1:返回完整的资源对象

    • PATCH /books/1:返回完整的资源对象

    • DELETE /books/1:返回一个空文档

  10. 响应结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

    {
        'id':'books/1',
        'name':'水浒传'
    }
    

API接口测试工具

后端人员开发了很多API接口后,因为没有写前端,不好测试,这时候就需要用到API测试工具了,它可以替代浏览器发送请求。

API接口测试工具postman下载:Postman API Platform | Sign Up for Free

使用:
image

image

批量管理接口,可以保存后发送给其他人。

image

序列化反序列化

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

后端中的大部分数据类型无法被前端识别,想要被前端识别就需要将后端数据序列化。比如python字典类型转成JSON格式数据

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

前端提供过来的JSON数据,对于python而言就是字符串,我们需要进行反序列化换成模型类对象,这样才能获取需要的数据。

DRF快速使用

DRF是 djangorestframework 的缩写,它是djagno的一个app(第三方插件),只能用在django框架上。

作用:可以帮助我们快速的写出符合restful规范的接口。

安装:

pip install djangorestframework

DRF和Django的版本有一定的对应关系,django版本过低可能drf最新版不支持,可以减低drf的版本。

posted @ 2022-06-13 18:04  Yume_Minami  阅读(166)  评论(0编辑  收藏  举报