Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

794
Visualizações
Django Rest Framework: cómo habilitar documentos swagger para vistas basadas en funciones

Revisé la documentación de Django REST Swagger 2.1.2 . Cuando probé con vistas basadas en clases, funcionó bien.

Pero no encontré ninguna referencia sobre cómo habilitar swagger para vistas basadas en funciones como se muestra a continuación:

 @api_view(['GET', 'POST']) def app_info(request): ... return response

La mayor parte de mi views.py está lleno de vistas basadas en funciones, al igual que arriba.

Cualquier ayuda sobre cómo habilitar el mismo será muy apreciada. ¡Gracias!

Estoy usando Django: 1.8; Django RESTO Swagger: 2.1.2; FRD: 3.6.2

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Deberías poder usar el decorador @renderer_classes :

 from rest_framework_swagger import renderers from rest_framework.decorators import api_view, renderer_classes @api_view(['GET', 'POST']) @renderer_classes([renderers.OpenAPIRenderer, renderers.SwaggerUIRenderer]) def app_info(request): ... return response

Además, vale la pena mencionar que si no desea usar este decorador en cada vista, puede especificar DEFAULT_RENDERER_CLASSES en la configuración

EDITAR: Parece que está en los documentos después de todo. Consulte la parte inferior de esta página: https://django-rest-swagger.readthedocs.io/en/latest/schema/

over 4 years ago · Santiago Trujillo Relatório

0

no estoy familiarizado con swagger, pero puede intentar usar el decorador de esta manera:

 class TestView(View): @api_view(['GET', 'POST']) def get(self, request): ....

o

 from django.utils.decorators import method_decorator class TestView(View): @method_decorator(api_view(['GET', 'POST']) def get(self, request): ....

-------------------------------------------------- --------------------------

Lo siento, tal vez he entendido mal tu pregunta. de acuerdo con el documento, si desea habilitar swagger en la vista basada en clases. hay ejemplo:

 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)

restframework usará estos dos renderer_classes para representar Json y UI.

over 4 years ago · Santiago Trujillo Relatório

0

Agrega lo siguiente en tus vistas.py

Importaciones

 from rest_framework.schemas import AutoSchema from rest_framework.compat import coreapi
 #creating custom class class CustomSampleSchema(AutoSchema): def __init__(self): super(CustomSampleSchema, self).__init__() def get_manual_fields(self, path, method): extra_fields = [ coreapi.Field('field1', required=True, location='form', description='', type='', example=''), coreapi.Field('field2', required=False, location='form', description='', type='', example=''), coreapi.Field('field3', required=False, location='form', description='', type='', example='') ] manual_fields = super().get_manual_fields(path, method) return manual_fields + extra_fields

Esta es la función para la que está escribiendo swagger doc.

 @api_view(['post']) @schema(CustomSampleSchema()) @csrf_exempt def func_name(request, param): """ Your function definition below """

Ejemplo de entrada json

 {"name": "['name1', ]", "places": "['place1', 'place2']", "key":"12345"}
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda