Django Swagger Rest API,当api位于与ui不同的服务器上时,tryit现在可以运行

时间:2019-05-31 14:45:05

标签: django swagger

我正在尝试使用Django Swagger Rest API记录Django Rest API,其中我们的API位于与UI不同的服务器上

由于API位于与用户界面不同的服务器上,因此尝试更改curl请求的TryIt now URL

我尝试在get_swagger_view中设置url,但这会将ui url附加在此url之前 我曾尝试在SWAGGER设置中更改base_path,但没有任何效果

1 个答案:

答案 0 :(得分:0)

假设您尝试了绝对URL,但它不起作用,另一种方法是自定义生成器,而不是使用get_swagger_view函数。您可以更改所需的任何内容,例如:

from rest_framework import response, schemas
from rest_framework.decorators import api_view, renderer_classes
from rest_framework_swagger.renderers import OpenAPIRenderer, SwaggerUIRenderer

class CustomRenderer(OpenAPIRenderer):
    def get_customizations(self):
        data = super().get_customizations()
        data['host'] = 'yourdomain.com/path'
        return data


@api_view()
@renderer_classes([SwaggerUIRenderer, CustomRenderer])
def swagger_view(request):
    generator = schemas.SchemaGenerator(title='Your title')
    return response.Response(generator.get_schema(request=request))

不要忘记在urls.py中配置此功能:

urlpatterns = [
    url(r'docs^$', schema_view)
]