Flasgger: Как написать описание нескольких конечных точек в одном файле yaml?
Я создал несколько конечных точек во Flask и создал файлы yml для каждого из них. Так, например, у меня есть 10 конечных точек и 10 небольших файлов yaml. Использовать его не очень удобно, поэтому я хочу поместить все описания в 1 yml файл. Я попробовал это: скрипт приложения:
from flask import Flask, jsonify, abort, make_response, request
from flasgger import Swagger, swag_from
app = Flask(__name__)
swagger = Swagger(app)
@app.route('/api/test/<int:ids>', methods=['GET'])
@swag_from('app.yml')
def test(ids):
"""
Test function
Some test function for debugging Swagger.
"""
return jsonify({"var1": 12312300, "var2":"sdfsdf"})
@app.route('/api/test2/<int:var>', methods=['GET'])
@swag_from('app.yml')
def test(var):
"""
Test function 2
Some test function for debugging Swagger.
"""
abort(make_response(jsonify(message="There is no model with this index"), 404))
и мой app.yml
:
paths:
/api/test2/<int:var>:
get:
return some information
---
tags:
- stage1:
- name: var
description: ID
in: path
required: true
type: integer
responses:
200:
description: OK.
/api/test/<int:ids>:
get:
Test function
Some test function for debugging Swagger.
---
tags:
- stage1
parameters:
- name: ids
description: ID
in: path
required: true
type: integer
responses:
200:
description: OK.
405:
description: Invalid input
Но это выдает ошибку:
Ошибки Fetch errorINTERNAL SERVER ERROR /apispec_1.json
это значит что-то не так в моем yml
файл. Как правильно это написать?
Я нашел такую проблему на github: https://github.com/rochacbruno/flasgger/issues/264
0 ответов
Вы можете создать чванство таким образом, но перед запуском чванства вы должны убедиться, что метод register_blueprint
был вызван.
def init(app: Flask):
# yaml path
conf_path = os.path.abspath(__file__)
conf_path = os.path.dirname(conf_path)
conf_path = os.path.join(conf_path, 'swagger.yml')
swagger = Swagger(app=app, template_file=conf_path)