Я работаю над API (с использованием инфраструктуры Python Bottle), который будет использоваться различными клиентами. При этом я пытаюсь убить 2 птиц одним камнем относительно документации. То, что я хотел бы сделать, это создать некоторый тип декоратора/атрибута, где я могу описать каждый публичный маршрут API. Затем у меня есть маршрут, который пересекает все другие маршруты и собирает эту информацию (описание, ввод, вывод ...). Эта информация возвращается как массив JSON, где она отображается в удобном для пользователя формате html.Документирование API бутылки Python с пользовательскими декораторами/атрибутами
Сбор информации о маршруте легко:
@route('/api-map',method=['GET'])
def api_map():
api_methods = []
for route in app.routes:
if route.rule != "/api-map":
##TODO: get custom attribute from routes function with description, inputs, outputs...
api_methods.append({"route":route.rule,"desc":"?"})
response.content_type = 'application/json'
return {"apiMap":api_methods}
Но я застрял на том, как достичь документации. Ниже концептуально, что я пытаюсь стянуть, где «svmdoc» является атрибутом, где я помещал эту информацию:
@route('/token',method=['GET'])
@svmdoc(desc="Generates Token",input="username and password")
def getToken():
#TODO token magic
Любые предложения о том, как реализовать этот подход? Что-то вроде этого уже существует, о котором я не знаю?