Как вы добавляете аутентификацию к маршрутам, предоставляемым eve_swagger? - PullRequest
0 голосов
/ 17 марта 2020

Я использую eve_swagger (https://github.com/pyeve/eve-swagger) в проекте, и он отлично работает для генерации документов по подделкам. У меня есть сценарий использования, когда мне нужна конечная точка /api-docs по умолчанию, которая создается как маршрут в библиотеке, требующей аутентификации.

Когда я создаю приложение eve, я устанавливаю для параметра auth значение класс аутентификации, но конечная точка / api-docs создается с планом, и я не уверен, как добавить аутентификацию к этой конечной точке. Есть идеи?

Мой канун * Депс:

eve = "~0.7"
eve_sqlalchemy = "~0.7"
eve_swagger = "^0.0.11"

Спасибо!

1 Ответ

0 голосов
/ 17 марта 2020

Я нашел способ, но не уверен, что это лучший / правильный путь.

Я беру предоставленный проект eve_swagger и добавляю before_request с функцией авторизации. Что-то вроде этого:

import eve_swagger
from flask import current_app as app

def authorize_swagger:
    # my auth logic

eve_swagger.swagger.before_request(authorize_swagger)
app.register_blueprint(eve_swagger.swagger)

В результате, когда я вызываю маршрут по умолчанию /api-docs, моя функция авторизации вызывается и обрабатывается перед запросом. Таким образом, если моя функция решит, что запрос не авторизован, она может остановить запрос.

...