Estamos practicando un ejemplo de REST API en Internet.
Sin embargo, se produjo el siguiente error.
Intenté una forma en este enlace, pero la situación no ha cambiado.
por qué swagger genera un error poco claro - Django
from django.contrib import admin from django.conf.urls import url, include from rest_framework import routers from rest_framework_swagger.views import get_swagger_view import consumer.api app_name = 'consumer' router = routers.DefaultRouter() router.register('consumers', consumer.api.ConsumerViewSet) urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api/doc', get_swagger_view(title='Rest API Document')), url(r'^api/v1/', include((router.urls, 'consumer'), namespace='api')), ] Exception Type: AttributeError at /api/doc Exception Value: 'AutoSchema' object has no attribute 'get_link'Funcionó para mí, cuando agregué a continuación en Settings.py
REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' }Como lo mencionó @vctrd , este error puede deberse a que el soporte de CoreAPI está en desuso a favor de OpenAPI desde DRF 3.10 :
Desde que introdujimos por primera vez la compatibilidad con esquemas en Django REST Framework 3.5, OpenAPI se ha convertido en el estándar ampliamente adoptado para el modelado de API web.
Esta versión inicia el proceso de obsolescencia para la generación de esquemas basada en CoreAPI e introduce la generación de esquemas OpenAPI en su lugar.
Aún podrá seguir usando esquemas de CoreAPI, documentos de API y clientes en el futuro previsible. Nuestro objetivo será garantizar que el generador de esquemas CoreAPI permanezca disponible como un paquete de terceros, incluso una vez que finalmente se elimine del marco REST, programado para la versión 3.12.
Como tal, la generación de esquemas de API parece haberse hecho más conveniente en las versiones recientes de DRF si usa OpenAPI en lugar de Core API. La documentación de la generación de esquemas DRF OpenAPI se puede encontrar en: https://www.django-rest-framework.org/api-guide/schemas/
Pero si es deseable usar Core API en su lugar por cualquier motivo, la respuesta de @Omkar será la solución.