django-ninja icon indicating copy to clipboard operation
django-ninja copied to clipboard

How to use swagger and redoc together?

Open rg3915 opened this issue 1 year ago • 1 comments

How to use swagger and redoc together?

rg3915 avatar Dec 03 '23 04:12 rg3915

Hi @rg3915

since v1 you can extend Docs class :

from ninja.openapi.docs import DocsBase, Swagger, Redoc


class MixedDocs(DocsBase):
    def __init__(self) -> None:
        super().__init__()
        self.swagger = Swagger()
        self.redoc = Redoc()

    def render_page(self, request, api, **kwargs):
        engine_name = kwargs.pop("engine")
        engine = {
            "swagger": self.swagger,
            "redoc": self.redoc,
        }.get(engine_name)
        return engine.render_page(request, api, **kwargs)


api = NinjaAPI(docs_url='/docs/<engine>', docs=MixedDocs())

vitalik avatar Dec 03 '23 14:12 vitalik

Thank you @vitalik

rg3915 avatar Apr 20 '24 02:04 rg3915