Movatterモバイル変換


[0]ホーム

URL:


Saltar a contenido
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

OpenAPIdocs

Utilities to handle OpenAPI automatic UI documentation, including Swagger UI (by default at/docs) and ReDoc (by default at/redoc).

fastapi.openapi.docs.get_swagger_ui_html

get_swagger_ui_html(*,openapi_url,title,swagger_js_url="https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui-bundle.js",swagger_css_url="https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui.css",swagger_favicon_url="https://fastapi.tiangolo.com/img/favicon.png",oauth2_redirect_url=None,init_oauth=None,swagger_ui_parameters=None)

Generate and return the HTML that loads Swagger UI for the interactiveAPI docs (normally served at/docs).

You would only call this function yourself if you needed to override some parts,for example the URLs to use to load Swagger UI's JavaScript and CSS.

Read more about it in theFastAPI docs for Configure Swagger UIand theFastAPI docs for Custom Docs UI Static Assets (Self-Hosting).

PARAMETERDESCRIPTION
openapi_url

The OpenAPI URL that Swagger UI should load and use.

This is normally done automatically by FastAPI using the default URL/openapi.json.

Read more about it in theFastAPI docs for Conditional OpenAPI

TYPE:str

title

The HTML<title> content, normally shown in the browser tab.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets

TYPE:str

swagger_js_url

The URL to use to load the Swagger UI JavaScript.

It is normally set to a CDN URL.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets

TYPE:strDEFAULT:'https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui-bundle.js'

swagger_css_url

The URL to use to load the Swagger UI CSS.

It is normally set to a CDN URL.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets

TYPE:strDEFAULT:'https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui.css'

swagger_favicon_url

The URL of the favicon to use. It is normally shown in the browser tab.

TYPE:strDEFAULT:'https://fastapi.tiangolo.com/img/favicon.png'

oauth2_redirect_url

The OAuth2 redirect URL, it is normally automatically handled by FastAPI.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets

TYPE:str | NoneDEFAULT:None

init_oauth

A dictionary with Swagger UI OAuth2 initialization configurations.

Read more about the available configuration options in theSwagger UI docs.

TYPE:dict[str,Any] | NoneDEFAULT:None

swagger_ui_parameters

Configuration parameters for Swagger UI.

It defaults toswagger_ui_default_parameters.

Read more about it in theFastAPI docs about how to Configure Swagger UI.

TYPE:dict[str,Any] | NoneDEFAULT:None

Source code infastapi/openapi/docs.py
 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
defget_swagger_ui_html(*,openapi_url:Annotated[str,Doc("""            The OpenAPI URL that Swagger UI should load and use.            This is normally done automatically by FastAPI using the default URL            `/openapi.json`.            Read more about it in the            [FastAPI docs for Conditional OpenAPI](https://fastapi.tiangolo.com/how-to/conditional-openapi/#conditional-openapi-from-settings-and-env-vars)            """),],title:Annotated[str,Doc("""            The HTML `<title>` content, normally shown in the browser tab.            Read more about it in the            [FastAPI docs for Custom Docs UI Static Assets](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/)            """),],swagger_js_url:Annotated[str,Doc("""            The URL to use to load the Swagger UI JavaScript.            It is normally set to a CDN URL.            Read more about it in the            [FastAPI docs for Custom Docs UI Static Assets](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/)            """),]="https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui-bundle.js",swagger_css_url:Annotated[str,Doc("""            The URL to use to load the Swagger UI CSS.            It is normally set to a CDN URL.            Read more about it in the            [FastAPI docs for Custom Docs UI Static Assets](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/)            """),]="https://cdn.jsdelivr.net/npm/swagger-ui-dist@5/swagger-ui.css",swagger_favicon_url:Annotated[str,Doc("""            The URL of the favicon to use. It is normally shown in the browser tab.            """),]="https://fastapi.tiangolo.com/img/favicon.png",oauth2_redirect_url:Annotated[str|None,Doc("""            The OAuth2 redirect URL, it is normally automatically handled by FastAPI.            Read more about it in the            [FastAPI docs for Custom Docs UI Static Assets](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/)            """),]=None,init_oauth:Annotated[dict[str,Any]|None,Doc("""            A dictionary with Swagger UI OAuth2 initialization configurations.            Read more about the available configuration options in the            [Swagger UI docs](https://swagger.io/docs/open-source-tools/swagger-ui/usage/oauth2/).            """),]=None,swagger_ui_parameters:Annotated[dict[str,Any]|None,Doc("""            Configuration parameters for Swagger UI.            It defaults to [swagger_ui_default_parameters][fastapi.openapi.docs.swagger_ui_default_parameters].            Read more about it in the            [FastAPI docs about how to Configure Swagger UI](https://fastapi.tiangolo.com/how-to/configure-swagger-ui/).            """),]=None,)->HTMLResponse:"""    Generate and return the HTML  that loads Swagger UI for the interactive    API docs (normally served at `/docs`).    You would only call this function yourself if you needed to override some parts,    for example the URLs to use to load Swagger UI's JavaScript and CSS.    Read more about it in the    [FastAPI docs for Configure Swagger UI](https://fastapi.tiangolo.com/how-to/configure-swagger-ui/)    and the [FastAPI docs for Custom Docs UI Static Assets (Self-Hosting)](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/).    """current_swagger_ui_parameters=swagger_ui_default_parameters.copy()ifswagger_ui_parameters:current_swagger_ui_parameters.update(swagger_ui_parameters)html=f"""    <!DOCTYPE html>    <html>    <head>    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <link type="text/css" rel="stylesheet" href="{swagger_css_url}">    <link rel="shortcut icon" href="{swagger_favicon_url}">    <title>{title}</title>    </head>    <body>    <div id="swagger-ui">    </div>    <script src="{swagger_js_url}"></script>    <!-- `SwaggerUIBundle` is now available on the page -->    <script>    const ui = SwaggerUIBundle({{        url: '{openapi_url}',    """forkey,valueincurrent_swagger_ui_parameters.items():html+=f"{json.dumps(key)}:{json.dumps(jsonable_encoder(value))},\n"ifoauth2_redirect_url:html+=f"oauth2RedirectUrl: window.location.origin + '{oauth2_redirect_url}',"html+="""    presets: [        SwaggerUIBundle.presets.apis,        SwaggerUIBundle.SwaggerUIStandalonePreset        ],    })"""ifinit_oauth:html+=f"""        ui.initOAuth({json.dumps(jsonable_encoder(init_oauth))})        """html+="""    </script>    </body>    </html>    """returnHTMLResponse(html)

fastapi.openapi.docs.get_redoc_html

get_redoc_html(*,openapi_url,title,redoc_js_url="https://cdn.jsdelivr.net/npm/redoc@2/bundles/redoc.standalone.js",redoc_favicon_url="https://fastapi.tiangolo.com/img/favicon.png",with_google_fonts=True)

Generate and return the HTML response that loads ReDoc for the alternativeAPI docs (normally served at/redoc).

You would only call this function yourself if you needed to override some parts,for example the URLs to use to load ReDoc's JavaScript and CSS.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets (Self-Hosting).

PARAMETERDESCRIPTION
openapi_url

The OpenAPI URL that ReDoc should load and use.

This is normally done automatically by FastAPI using the default URL/openapi.json.

Read more about it in theFastAPI docs for Conditional OpenAPI

TYPE:str

title

The HTML<title> content, normally shown in the browser tab.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets

TYPE:str

redoc_js_url

The URL to use to load the ReDoc JavaScript.

It is normally set to a CDN URL.

Read more about it in theFastAPI docs for Custom Docs UI Static Assets

TYPE:strDEFAULT:'https://cdn.jsdelivr.net/npm/redoc@2/bundles/redoc.standalone.js'

redoc_favicon_url

The URL of the favicon to use. It is normally shown in the browser tab.

TYPE:strDEFAULT:'https://fastapi.tiangolo.com/img/favicon.png'

with_google_fonts

Load and use Google Fonts.

TYPE:boolDEFAULT:True

Source code infastapi/openapi/docs.py
183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
defget_redoc_html(*,openapi_url:Annotated[str,Doc("""            The OpenAPI URL that ReDoc should load and use.            This is normally done automatically by FastAPI using the default URL            `/openapi.json`.            Read more about it in the            [FastAPI docs for Conditional OpenAPI](https://fastapi.tiangolo.com/how-to/conditional-openapi/#conditional-openapi-from-settings-and-env-vars)            """),],title:Annotated[str,Doc("""            The HTML `<title>` content, normally shown in the browser tab.            Read more about it in the            [FastAPI docs for Custom Docs UI Static Assets](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/)            """),],redoc_js_url:Annotated[str,Doc("""            The URL to use to load the ReDoc JavaScript.            It is normally set to a CDN URL.            Read more about it in the            [FastAPI docs for Custom Docs UI Static Assets](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/)            """),]="https://cdn.jsdelivr.net/npm/redoc@2/bundles/redoc.standalone.js",redoc_favicon_url:Annotated[str,Doc("""            The URL of the favicon to use. It is normally shown in the browser tab.            """),]="https://fastapi.tiangolo.com/img/favicon.png",with_google_fonts:Annotated[bool,Doc("""            Load and use Google Fonts.            """),]=True,)->HTMLResponse:"""    Generate and return the HTML response that loads ReDoc for the alternative    API docs (normally served at `/redoc`).    You would only call this function yourself if you needed to override some parts,    for example the URLs to use to load ReDoc's JavaScript and CSS.    Read more about it in the    [FastAPI docs for Custom Docs UI Static Assets (Self-Hosting)](https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/).    """html=f"""    <!DOCTYPE html>    <html>    <head>    <title>{title}</title>    <!-- needed for adaptive design -->    <meta charset="utf-8"/>    <meta name="viewport" content="width=device-width, initial-scale=1">    """ifwith_google_fonts:html+="""    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">    """html+=f"""    <link rel="shortcut icon" href="{redoc_favicon_url}">    <!--    ReDoc doesn't change outer page styles    -->    <style>      body{{        margin: 0;        padding: 0;}}    </style>    </head>    <body>    <noscript>        ReDoc requires Javascript to function. Please enable it to browse the documentation.    </noscript>    <redoc spec-url="{openapi_url}"></redoc>    <script src="{redoc_js_url}"> </script>    </body>    </html>    """returnHTMLResponse(html)

fastapi.openapi.docs.get_swagger_ui_oauth2_redirect_html

get_swagger_ui_oauth2_redirect_html()

Generate the HTML response with the OAuth2 redirection for Swagger UI.

You normally don't need to use or change this.

Source code infastapi/openapi/docs.py
287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
defget_swagger_ui_oauth2_redirect_html()->HTMLResponse:"""    Generate the HTML response with the OAuth2 redirection for Swagger UI.    You normally don't need to use or change this.    """# copied from https://github.com/swagger-api/swagger-ui/blob/v4.14.0/dist/oauth2-redirect.htmlhtml="""    <!doctype html>    <html lang="en-US">    <head>        <title>Swagger UI: OAuth2 Redirect</title>    </head>    <body>    <script>        'use strict';        function run () {            var oauth2 = window.opener.swaggerUIRedirectOauth2;            var sentState = oauth2.state;            var redirectUrl = oauth2.redirectUrl;            var isValid, qp, arr;            if (/code|token|error/.test(window.location.hash)) {                qp = window.location.hash.substring(1).replace('?', '&');            } else {                qp = location.search.substring(1);            }            arr = qp.split("&");            arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});            qp = qp ? JSON.parse('{' + arr.join() + '}',                    function (key, value) {                        return key === "" ? value : decodeURIComponent(value);                    }            ) :{};            isValid = qp.state === sentState;            if ((              oauth2.auth.schema.get("flow") === "accessCode" ||              oauth2.auth.schema.get("flow") === "authorizationCode" ||              oauth2.auth.schema.get("flow") === "authorization_code"            ) && !oauth2.auth.code) {                if (!isValid) {                    oauth2.errCb({                        authId: oauth2.auth.name,                        source: "auth",                        level: "warning",                        message: "Authorization may be unsafe, passed state was changed in server. The passed state wasn't returned from auth server."                    });                }                if (qp.code) {                    delete oauth2.state;                    oauth2.auth.code = qp.code;                    oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});                } else {                    let oauthErrorMsg;                    if (qp.error) {                        oauthErrorMsg = "["+qp.error+"]: " +                            (qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +                            (qp.error_uri ? "More info: "+qp.error_uri : "");                    }                    oauth2.errCb({                        authId: oauth2.auth.name,                        source: "auth",                        level: "error",                        message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server."                    });                }            } else {                oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});            }            window.close();        }        if (document.readyState !== 'loading') {            run();        } else {            document.addEventListener('DOMContentLoaded', function () {                run();            });        }    </script>    </body>    </html>        """returnHTMLResponse(content=html)

fastapi.openapi.docs.swagger_ui_default_parametersmodule-attribute

swagger_ui_default_parameters={"dom_id":"#swagger-ui","layout":"BaseLayout","deepLinking":True,"showExtensions":True,"showCommonExtensions":True,}

Default configurations for Swagger UI.

You can use it as a template to add any other configurations needed.


[8]ページ先頭

©2009-2026 Movatter.jp