django rest swagger

时间主题11.21(周四)20:00 契约测试&Swagger

在周四的测试运维试听课程中,芒果给大家介绍了契约测试,以及基于django rest framework 的 Swagger使用,这里我们来做个小总结。什么是契约测试契约测试,又称之为消费者驱动的契约测试(Consumer-Driven Contracts Test,简称CDCT),根据 消费者驱动契约 ,我们可以将服务分为消费者端和生产者端,而消费者驱动的契约测试的核心思想在于是从消费者业务实现的角度出发,由消费者自己会定义需要的数据格式以及交互细节,并驱动生成一份契约文件。然后生产者根据契约文件来实现自己的逻辑,并在持续集成环境中持续验证。在我们前面的文章中有详细介绍:契约测试:解决微服务测试的问题这里就不做再一次的重复,我们介绍一下另外一个契约测试工具Swagger。Swagger介绍Swagger跟前面《契约测试:解决微服务测试的问题》提到的Pact一样,是成熟的契约测试解决方案。Swagger可以贯穿于整个API生态,如API的设计、编写API文档、测试和部署。它是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger的总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。当接口有变动时,对应的接口文档也会自动更新。Swagger应用场景:如果你的RESTful API接口都开发完成了,可以用Swagger-editor来编写API 文档(yaml文件或json文件),然后通过Swagger-ui来渲染该文件,展现API文档。如果你的RESTful API还未开始,也可以使用Swagger生态,来设计和规范你的API,以Annotation(注解)的方式给你的源代码添加额外的元数据。这样Swagger就可以检测到这些元数据,自动生成对应的API描述信息。Swagger 支持自动生成 API 文档。下面我们一起来看看基于Django rest API开发的rest framework Swagger的使用。Django REST Swagger在我们接口开发完之后,需要交付给别人对接,在没有使用swagger的时候,我们需要单独编写一份api接口文档,由postman之类的工具进行请求得到返回的结果。而有了swagger之后,可以通过提取接口代码中的注释来生成文档,并且可以直接在浏览器中调用,获取返回结果。Django REST Swagger安装:pip install django-rest-swaggerDjango REST Swagger配置:在项目配置文件setting.py中添加:INSTALLED_APPS = [ ..., 'rest_framework_swagger',]REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}然后在你的视图函数或者类里面添加好对应的注释:class ScriptsView(generics.ListCreateAPIView): """ get: list all script instance post: create a script intance """ queryset = Script.objects.all() serializer_class = ScriptSerializersclass ScriptDetail(generics.RetrieveUpdateDestroyAPIView): """ get: get a script instance put: update a script intance patch: update a script intance delete: delete a script intance """ queryset = Script.objects.all()    serializer_class = ScriptSerializers最后设置显示urls.py文件中设置显示信息:from rest_framework_swagger.renderers import SwaggerUIRenderer,OpenAPIRendererfrom rest_framework.schemas import get_schema_viewschema_view = get_schema_view(title="MyWebSite API",renderer_classes=[SwaggerUIRenderer,OpenAPIRenderer])urlpatterns = [ ..., path('docs/',schema_view)]效果图如下:

后续的啰啰嗦嗦当然除了课程内容除了这些基本的介绍,芒果还给大家介绍了,关于带大家学习 Python 的 web 项目的 RESTful API开发框架中CBV模式开发等内容。

(0)

相关推荐

  • python测试开发django-62.基于类的视图(APIView和View)

    前言 django中编辑视图views.py有两种方式,一种是基于类的实现,另外一种是函数式的实现方式,两种方法都可以用. REST框架提供了一个APIView类,它是Django View类的子类. ...

  • 接口的单元测试

    作者:HelloGitHub-追梦人物 一个完整的项目,无论是个人的还是公司的,自动化的单元测试是必不可少,否则以后任何的功能改动将成为你的灾难. 假设你正在维护公司的一个项目,这个项目已经开发了几十 ...

  • 03 认识Django REST framework

    DRF简介 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的. 在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增.删. ...

  • Django-rest framework框架

    第一章:接口规范 01 Web应用模式 02 Restful接口规范 第二章:请求渲染解析异常响应组件 01 认识Django REST framework 02 DRF环境安装与搭建 03 DRF请 ...

  • Node.js仿知乎服务端-深入理解RESTful API

    ┃  ┃  ┃  ┣━6-2 Koa 自带的错误处理_batch.mp4! s9 D0 \9 ]+ u( O# N2 P+ R ┃  ┃  ┃  ┣━14-2 问题-答案模块二级嵌套的增删改查接口.m ...

  • 如何在Django REST框架中使用Swagger API

    WEB前端开发社区 今天 在本教程的这里,我将向您展示如何在Django REST框架中使用Swagger API.Swagger API为REST API端点提供了结构良好的文档,因此新手可以说如何 ...

  • python测试开发django-63.基于函数的视图(@api_view())

    前言 上一篇讲了基于类的视图,在REST framework中,你也可以使用常规的基于函数的视图.它提供了一组简单的装饰器,用来包装你的视图函数, 以确保视图函数会收到Request(而不是Djang ...

  • Flask VS Django选择哪个好?优缺点对比!

    flask和Django是Python爆火的框架,用途广.功能多.优势突出,深受大家的喜欢.那么flask对比Django框架,哪种更好呢?我想大家都有这样的疑问,通过这篇文章为大家讲解一下. 什么是 ...

  • Django的开发流程与数据库设计

    引言:项目开发流程: 需求分析(成员:架构师 .产品经理 .开发者组长) 在跟客户谈需求之前,会大致先了解客户的需求,然后自己先设计一套比较好写的方案.跟客户沟通交流中引导客户往我们之前想好的方案上面 ...

  • Django Full Coverage(飞速入门)

    Django(个人推荐, 如果项目较大 需要协同开发, 建议使用django这种重量级框架, 如果类似于纯api的后端应用建议使用 flask, 轻量小巧 , 麻雀虽小五脏俱全) 1.Django是什 ...

  • Python 里最强的Web框架,早就不是Django和Flask了

    Python 里最强的Web框架,早就不是Django和Flask了

  • .Net之Swagger基础使用

    今天 以下文章来源于鹏祥 ,作者AZRNG 鹏祥分享.Net相关技术文章,一起学习一起成长 介绍 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web ...

  • 我来记笔记啦-Django开发流程与配置

    目录 1.Django介绍 1.2 MVC模式说明 1.3 Django的MVT 1.4 Django配置顺序 1. 创建Django项目 2.创建Django子应用 3. 注册安装子应用 4. 使用 ...

  • vue django部署

    部署前的准备 在开发完django后端接口和vue前端页面之后,我们的代码并不能直接放到远程服务器上去部署,需要一些准备,下面是在项目已经在本地对好接口,可以运行的情况下的部署准备操作 前端vue项目 ...

  • 干货|vue-element-admin和Django简单整合

    前言 笔者是一个python script guy开发者-----俗称'二把刀开发者',平常大部分时间写的都是poc.脚本和工具类应用,很少写整站项目.如果你是一个前端工程师和资深开发工程师,请忽略本 ...