FastAPI — это быстрый (быстрее, чем все другие существующие популярные веб-фреймворки Python), простой в использовании, с малым количеством кода и созданный на основе стандарта OpenAPI. Однако при разработке API возникает потребность в документации, чтобы ваши пользователи и другие разработчики могли с легкостью понять и использовать ваше API.
Swagger — это набор инструментов, позволяющих создавать, документировать и тестировать ваше API. FastAPI по умолчанию предоставляет онлайн-документацию Swagger. Она удобна, но что делать, если вам нужна оффлайн-версия документации, например, для работы без доступа к Интернету или для локального использования?
В этой статье мы рассмотрим, как добавить оффлайн Swagger в FastAPI. Мы использовать инструмент Swagger UI для отображения документации API. Swagger UI предоставляет возможность локального использования, позволяя разрабатывать и тестировать ваше API без подключения к сети. Приступим к пошаговой инструкции!
Оффлайн Swagger в FastAPI: пошаговая инструкция
Шаг 1: Установка дополнительных зависимостей
Перед добавлением оффлайн Swagger необходимо установить несколько дополнительных зависимостей. Для этого вам понадобится pip — менеджер пакетов Python. В командной строке выполните следующую команду:
pip install fastapi[all]
Шаг 2: Импорт необходимых модулей
Для добавления оффлайн Swagger в FastAPI вам нужно импортировать несколько модулей и функций:
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.openapi.utils import get_openapi
Шаг 3: Создание экземпляра FastAPI
Создайте экземпляр FastAPI:
app = FastAPI()
Шаг 4: Добавление маршрутов
Добавьте маршруты для вашего API:
@app.get("/")
async def root():
return {"message": "Hello World"}
Шаг 5: Добавление оффлайн Swagger
Добавьте оффлайн Swagger в FastAPI с помощью следующего кода:
app.mount(
"/swagger",
StaticFiles(directory="swagger"),
name="swagger",
)
@app.get("/docs", include_in_schema=False)
async def swagger_ui_html():
return get_swagger_ui_html(
openapi_url="/openapi.json",
title="API Documentation",
swagger_js_url="/swagger/swagger-ui-bundle.js",
swagger_css_url="/swagger/swagger-ui.css",
)
@app.get("/openapi.json", include_in_schema=False)
async def get_openapi_json():
return get_openapi(
title="API Documentation",
version="0.1.0",
routes=app.routes,
)
Шаг 6: Запуск сервера
Запустите сервер с помощью следующего кода:
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
Теперь вы можете открыть браузер и перейти по следующему URL: http://localhost:8000/docs
. Вы увидите интерфейс оффлайн Swagger и сможете использовать его для тестирования вашего API.