向django rest swagger的数据注入一个swagger样式的yaml数据

django-rest-swagger-swaggerdoc的Python项目详细描述


CircleCI StatusCodeCov Status

django rest swagger 2.0已经发生了翻天覆地的变化。例如,不能在YAML文件中放置返回代码。 这个包提供了向django rest swagger的数据注入swagger样式的yaml数据的功能。

如何使用

  1. 在已安装的应用程序设置中添加rest_framework掴u swagger

    设置.py:

    INSTALLED_APPS = (
        ...
       'rest_framework_swagger',
    )
    
  2. 创建一个夸张风格的yaml文件

    这个yaml文件风格夸张。

    /api_test_doc.yml:

    get:
      description: test document
      responses:
        200:
          description: success
        400:
          description: bad request
          schema:
            type: json
          headers:
            Content-Type: application/json
    
  3. 创建API视图函数或视图类。

    用于指定文件的相对路径的swaggerdoc修饰符 定义了视图可调用。

    视图.py:

    from rest_framework.decorators import api_view
    from rest_framework.views import APIView
    
    from django_rest_swagger_swaggerdoc import swaggerdoc
    
    @swaggerdoc('api_test_doc.yml')
    @api_view()
    def example_view(request):
        pass
    
    class ExampleView(APIView):
        @swaggerdoc('./api_test_doc.yml')
        def get(self, request):
            pass
    
  4. 创建文档架构视图。

    使用django_rest_swagger_swaggerdoc.renders.SwaggerAdditinalDocRenderer。 不要使用rest_framework_swagger.renderers.openapirenderer。

    视图.py:

    from rest_framework_swagger.renderers import SwaggerUIRenderer
    from rest_framework.decorators import api_view, renderer_classes
    from rest_framework import response, schemas
    
    from django_rest_swagger_swaggerdoc.renderers import SwaggerAdditinalDocRenderer
    
    
    @api_view()
    @renderer_classes([SwaggerUIRenderer, SwaggerAdditinalDocRenderer])
    def schema_view(request):
        generator = schemas.SchemaGenerator(title='Pastebin API')
        return response.Response(generator.get_schema(request=request))
    

参见示例项目:https://github.com/TakesxiSximada/django-rest-swagger-swaggerdoc/tree/master/examples

安装

$ pip install django-rest-swagger-swaggerdoc

这取决于djangorestframework(>;=3.4.7)。 如果版本早于3.7.4,则可能无法正确解析yaml路径。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java复选框。setOnCheckedChangeListener调用崩溃应用程序?   java如何模拟@InjectMocks类中的方法?   注释Java getter和setter   java是否锁定jar或DLL文件?   java绝对uri:http://www.slf4j.org/taglib/tld无法解决   java无法解析符号FirebaseMessagingService   java Glassfish 4中的性能调谐器在哪里?(优化树莓皮)   java获取同一页面上的内容标签   java NoClassDefFoundError,这里忽略了什么?(附图)   OnCreate中的java代码没有按顺序运行   如何在MongoDB Java驱动程序中用多个字段表示对象   java使用JTextfield文本重复搜索JTable   java奇怪的效果与字符串比较==   如何在Java Play框架中托管API?   hibernate中的java交叉连接问题