我已经使用 djangorestframework 设置了我的 python api 服务,并且我正在使用 drf_yasg 为我的 api 显示 swagger 文档。
这是设置的概览:
schema_view = get_schema_view(
openapi.Info(
title='My API',
default_version='v1',
description='rest service',
terms_of_service='',
contact=openapi.Contact(email='my@email'),
license=openapi.License(name='BSD License'),
),
public=False,
)
urlpatterns = [
path('pyapi/weather/', include('apps.weather.urls')),
re_path(r'^pyapi/swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
re_path(r'^pyapi/swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
re_path(r'^pyapi/redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]
接下来,我使用 amazon ec2 和其他东西设置了这个 api,并且我正在使用 Amazon API Gateway 从容器中访问 api。
现在的问题是,当我尝试使用 api 网关域访问它时,它返回的是swagger JSON而不是 HTML。我尝试了几种方法,例如Content-Type
在方法响应和集成响应中设置映射,但没有任何效果。
在我的本地机器上,它按预期显示 html,所以我怀疑问题出在我的网关设置中。
如果有人可以提供帮助,我将不胜感激!