Tim*_*Tim 0 python django python-3.7 django-2.0
We are practicing an example of REST API on the Internet.
However, the following error occurred.
I tried a way in this link, but the situation hasn't changed.
why swagger raises unclear error - 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')),
]
Run Code Online (Sandbox Code Playgroud)
Exception Type: AttributeError at /api/doc
Exception Value: 'AutoSchema' object has no attribute 'get_link'
Run Code Online (Sandbox Code Playgroud)
当我在下面添加到 Settings.py
REST_FRAMEWORK = { 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' }
Run Code Online (Sandbox Code Playgroud)
正如@vctrd提到的,此错误可能是由于自DRF 3.10以来不推荐使用 CoreAPI 支持,转而使用 OpenAPI :
自从我们首次在 Django REST Framework 3.5 中引入架构支持以来,OpenAPI 已成为广泛采用的 Web API 建模标准。
此版本开始了基于 CoreAPI 的架构生成的弃用过程,并引入了 OpenAPI 架构生成来代替它。
在可预见的将来,您仍然可以继续使用 CoreAPI 架构、API 文档和客户端。我们的目标是确保 CoreAPI 模式生成器仍然可以作为第三方包使用,即使它最终从 REST 框架(计划在版本 3.12 中删除)中也是如此。
因此,如果您使用 OpenAPI 而不是 Core API,那么在最近的 DRF 版本中,API 模式的生成似乎变得更加方便。DRF OpenAPI 模式生成的文档可以在以下位置找到:https ://www.django-rest-framework.org/api-guide/schemas/
但如果出于某种原因需要使用 Core API,@Omkar 的答案将是解决方案。
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |