¿Cómo crear automáticamente la documentación de la API en Django REST Framework?

Requisito previo: https://www.geeksforgeeks.org/how-to-create-an-app-in-django/

Escribir documentación puede ser bastante desalentador para los desarrolladores y, para ser honesto, a nadie le gusta escribir explicaciones largas, personalmente no, pero como todos sabemos, la documentación es tan importante como escribir un código que funcione correctamente. Entonces, hay una forma bastante simple de generar documentación automáticamente, y espere, no solo documentos, sino que también le mostraré cómo puede crear un patio de recreo en línea para probar las API.

No sé ustedes, pero para mí, Django es el marco de referencia para el desarrollo web, así que les mostraré cómo pueden hacerlo en Django. Entonces, antes de comenzar, debe tener Django y Django REST Framework instalados. Supongo que ya lo tienes. A continuación, debe instalar drf-yasg . Para hacerlo, simplemente escriba lo siguiente en la terminal.

pip install drf-yasg

Ahora, comencemos con los pasos.

Primero, crea un nuevo proyecto Django. Supongo que ya sabes cómo hacerlo.

A continuación, vaya a settings.py y agregue drf_yasg a INSTALLED_APPS

INSTALLED_APPS = [
   ...
   'drf_yasg',
   ...
]

Luego, ingrese a urls.py y agregue el código del controlador para drf_yasg 

Python3

from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
  
...
  
schema_view = get_schema_view(
   openapi.Info(
      title="Dummy API",
      default_version='v1',
      description="Dummy description",
      terms_of_service="https://www.google.com/policies/terms/",
      contact=openapi.Contact(email="contact@dummy.local"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)
  
urlpatterns = [
   url(r'^playground/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
   url(r'^docs/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
   ...
]

Ahora, si simplemente ejecuta el servidor y va a localhost:8000/docs , puede ver la documentación y si va a localhost:8000/playground pero espere lo que mostrarán los documentos, aún no hemos creado ninguna ruta para mostrar el documentos Entonces, vamos a crear rápidamente una nueva aplicación y agregarle una ruta.

Primero, cree una aplicación llamada demo . Supongo que ya sabe cómo crear y agregar una aplicación a la configuración de Django junto con las direcciones URL.

A continuación, vaya a demo/views.py y agréguele el siguiente código.

Python3

from drf_yasg.utils import swagger_auto_schema
from rest_framework import status, permissions, serializers
from rest_framework.response import Response
from rest_framework.views import APIView
  
  
class ContactForm(serializers.Serializer):
      # simple serializer for emails
    email = serializers.EmailField()
    message = serializers.CharField()
  
  
# simple endpoint to take the serializer data
class SendEmail(APIView):
      # permission class set to be unauthenticated
    permission_classes = (permissions.AllowAny,)
    # this is where the drf-yasg gets invoked
    @swagger_auto_schema(request_body=ContactForm)
    def post(self, request):
          # serializer object
        serializer = ContactForm(data=request.data)
        # checking for errors
        if serializer.is_valid():
            json = serializer.data
            return Response(
                data={"status": "OK", "message": json},
                status=status.HTTP_201_CREATED,
            )
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Después de esto, agregue este APIView a urls.py al punto final /email . Eso es todo. Ahora, si simplemente ejecuta el servidor en su localhost en el puerto 8000 y va a localhost:8000/docs , debería ver la documentación y el patio de recreo se puede ver en localhost:8000/playground . Debería verse algo como esto.

Documentos

patio de juegos

Publicación traducida automáticamente

Artículo escrito por debdutgoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *