Django REST Swagger Визуализация схемы

Джанго REST Swagger включает в себя два рендера; OpenAPIRenderer и  SwaggerUIRenderer.

OpenAPIRenderer Отвечает за создание спецификации JSON, в то время как  SwaggerUIRenderer делает пользовательский интерфейс (HTML / JS / CSS).

Примечание: для визуализации интерфейса должны быть включены оба средства визуализации. OpenAPIRenderer Может использоваться самостоятельно , если вы хотите разместить пользовательский интерфейс самостоятельно.

get_swagger_view ярлык
Для удобства предоставляется быстрый способ с разумными конфигурациями по умолчанию для создания документации SwaggerUI для вашего API. Это представление имеет следующее:

  • Применяет классы разрешений DRF и пользовательский контекст. Это означает, что анонимные пользователи могут не видеть полный список конечных точек, если представления требуют аутентификации.
  • Любой может просматривать документы, однако документация будет создаваться только для общедоступных конечных точек.
  • Визуализирует CoreJSON

Параметры:

title: Название документации ( по умолчанию: None)

url: URL к документации (если не на том же хосте или пути). Может быть относительным путем или может быть абсолютным URL. ( По умолчанию: None)

Пример:

from rest_framework_swagger.views import get_swagger_view

schema_view = get_swagger_view(title='My great API', url='/a-different-path')


Расширенное использование
Для более точного управления документацией создайте собственное представление схемы с помощью представления на основе функций или классов. Это может быть полезно, если вы хотите создать документацию для определенных шаблонов URL или URL-адресов.

Более подробную документацию по генератору схемы смотрите в:

http://www.django-rest-framework.org/api-guide/schemas/

Пример: представление на основе классов

from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from rest_framework.schemas import SchemaGenerator
from rest_framework.views import APIView
from rest_framework_swagger import renderers


class SwaggerSchemaView(APIView):
    permission_classes = [AllowAny]
    renderer_classes = [
        renderers.OpenAPIRenderer,
        renderers.SwaggerUIRenderer
    ]

    def get(self, request):
        generator = SchemaGenerator()
        schema = generator.get_schema(request=request)

        return Response(schema)

Пример: представление на основе функции

from rest_framework_swagger.renderers import OpenAPIRenderer, SwaggerUIRenderer
from rest_framework.decorators import api_view, renderer_classes
from rest_framework import response, schemas

@api_view()
@renderer_classes([SwaggerUIRenderer, OpenAPIRenderer])
def schema_view(request):
    generator = schemas.SchemaGenerator(title='Pastebin API')
    return response.Response(generator.get_schema(request=request))

Далее :Django REST Swagger : настройки

17 января 2019 г. 21:33 Теги - # Swagger # django rest framework # django Категория - Django rest framework Kiwi standing on oval674