Я пытаюсь написать приложение без декоратора
и использовать add_api_route < /code> ( Я нахожу это более удобным). Приложение имеет некоторые маршруты, которые требуют аутентификации, а некоторые-нет. ">
Код: Выделить всё
class Data:
x: str
async def protected_method(d: Data):
# do something with the data
async def not_protected_method(d: Data):
# do something with the data
swagger_protect = OAuth2PasswordBearer(tokenurl='....')
def get_protected_end_points() -> FastAPI:
result = FastAPI(
dependencies=[Depends(swagger_protect)])
result.add_middlewaer( # middleware to check the user token)
result.add_api_route(
path=...
endpoint = protected_method,
dependencies = [Depends(swagger_protect)])
def get_not_protected_end_points() -> FastAPI:
result = FastAPI()
result.add_api_route(
path=...
endpoint = not_protectes_method)
app = FastAPI()
app.mount(
path='/protected',
app=get_protected_end_points())
app.mount(
path='/not_protected',
app=get_not_protected_end_points())
< /code>
Я также использую промежуточное программное обеспечение для проверки токена пользователей. не появляется в Swagger UI. < /p>
Что я здесь делаю не так? Все методы, таким образом, определение OpenAPI будет правильным.
Я попытался поместить Swagger_protect
Подробнее здесь: https://stackoverflow.com/questions/793 ... henticated