Получить несколько данных в запросе POST с помощью Flask_restx

Добрый вечер:

Я создал API во Flask и Flask Restx, где пользователь должен отправить запрос POST с некоторыми числовыми аргументами и получить результат от бэкэнда.

Теперь я пытаюсь расширить его, чтобы одновременно принимать несколько "запросов"; Я имею в виду, что пользователь должен иметь возможность отправить список запросов и получить список результатов.

Как это сделать?

Это упрощение кода:

from flask import Flask, request
from flask_cors import CORS
from flask_restx import Api, fields, Resource   
from flask_restx import reqparse

...

# Package data directory
_data_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "out")

flask_app = Flask(__name__, static_url_path='')
CORS(flask_app)

app = Api(app=flask_app, title="models", description="API")

api_space = app.namespace("api", description="Internal API")

# Log also in production
flask_app.logger.setLevel(logging.DEBUG)

prediction_model_base = app.model('Base prediction configuration',
                             {'a': fields.Float(required=True, description="a",
                                                  example=15.21),
                              'b': fields.Float(required=True, description="b",
                                                 example=3.72),
                              'c': fields.Float(required=True, description="c",
                                                    example=5.50),

                              })

prediction_return_model = app.model('Base predictions results', {
    'a': fields.Float(description="Lower quantile prediction", example=0.3),
    'b': fields.Float(description="Median prediction", example=0.5),
    'c': fields.Float(description="Upper quantile prediction", example=0.7),
})

# API points
@api_space.route("/prediction/gradientboostingregressor")
class Prediction(Resource):
    @app.doc(description="Make a prediction for a set of parameters.")
    @app.expect(prediction_model_base)
    @app.response(500, 'Invalid values')
    @app.marshal_with(prediction_return_model, code=200, description='OK')
    def post(self):
       ...
        return {
            "a": lower,
            "b": mid,
            "c": upper
        }

0 ответов

Другие вопросы по тегам