В flask-restplus
я хочу смоделировать тело ответа, которое имеет структуру вложенного списка, поэтому всякий раз, когда выполняется вызов API, тело ответа будет возвращено так, как я ожидал. В теле ответа оно имеет вложенную структуру, я не знаю, как это задокументировать. Я собираюсь использовать fields.Dict()
? Кто-нибудь может указать мне, как это сделать в flask-restplus
?
теле ответа :
{
"score": 0,
"category": "low",
"guidance": "string",
"is_ready": true,
"used_features": [
{
"name": "hear_rate",
"value": 1002,
"range_value": [
10,
1000,
10000,
20000
],
"range_frequency": [
80,
15,
2,
1
],
"importance": 1
},
{
"name": "pressure",
"value": 400,
"range_value": [
10,
1000,
3000
],
"range_frequency": [
85,
10,
5
],
"importance": 2
}
]
}
моем частичном решении :
вот мое частичное решение
from flask import Flask, jsonify
from flask_restplus import Api, Resource, fields, reqparse, inputs
app = Flask(__name__)
api = Api(app)
ns = api.namespace('ns')
payload = api.model('Payload', {
'score': fields.Integer,
'category': fields.String,
'guidance': fields.String,
'is_ready': fields.Boolean,
## how to add used features arrays
})
@ns.route('/')
class AResource(Resource):
@ns.expect(payload)
def get(self):
parser = reqparse.RequestParser()
parser.add_argument('score', type=str, required=True)
parser.add_argument('category', type=str, required=True)
parser.add_argument('guidance', type=str, required=True)
parser.add_argument('category', type=str, required=True)
parser.add_argument('is_ready', type= bool, required=True)
try: # Will raise an error if date can't be parsed.
args = parser.parse_args() # type "dict"
return jsonify(args)
except:
return None, 400
if __name__ == '__main__':
app.run(debug=True)
в моем попытке кода, я не смог придумать решение, как смоделировать used_features
словарь. Есть ли способ исправить дефект вышеупомянутой попытки? Кто-нибудь может указать мне, как заставить это работать, где я могу смоделировать тело ответа правильно? Я собираюсь использовать Dict
или Nested
в своем коде? есть еще мысли? спасибо