#python #fastapi
#python #fastapi
Вопрос:
Когда я использую FastAPI, как я могу определить базовый путь для веб-службы?
Другими словами, существуют ли аргументы для объекта FastAPI, которые могут устанавливать конечную точку и любые другие, которые я определяю, на другой корневой путь?
Например, если бы у меня был код с root
приведенным ниже ложным аргументом, он бы прикрепил мою /my_path
конечную точку к /my_server_path/my_path
?
from fastapi import FastAPI, Request
app = FastAPI(debug = True, root = 'my_server_path')
@app.get("/my_path")
def service( request : Request ):
return { "message" : "my_path" }
Комментарии:
1. Я могу получить что-то похожее на работу, обернув аргумент path в функцию, которая добавляет базовый URI, например
@app.get( make_path("/my_path")
, гдеmake_path
просто добавляет строку, напримерdef make_path( x : str ) -> str: return "/my_server_path" x
Ответ №1:
Вы можете использовать APIRouter
и добавить его в приложение после добавления путей:
from fastapi import APIRouter, FastAPI
app = FastAPI()
prefix_router = APIRouter(prefix="my_server_path")
# Add the paths to the router instead
@prefix_router.get("/my_path")
def service( request : Request ):
return { "message" : "my_path" }
# Now add the router to the app
app.include_router(prefix_router)
Сначала добавляя маршрутизатор, а затем добавляя пути, теперь он работает. Кажется, что пути не определяются динамически.
Ответ №2:
Я думаю, вам нужна опция префикса.
Добавьте это после создания app
:
app.include_router(prefix="/my_server_path")
Комментарии:
1. Это не работает с моей последней версией FastAPI.
2. Какую версию вы используете?