gpt4 book ai didi

python - 如何使用 flask_restplus 显示模式示例?

转载 作者:行者123 更新时间:2023-12-03 21:25:36 30 4
gpt4 key购买 nike

[使用 Python、Flask、flask_restplus、Swagger]

我正在尝试显示 schema model如下图使用flask_restplus .
yml 而非 python 中的原型(prototype)模式:

enter image description here

我创建了 schema_model但我不确定如何将它输入到代码中,以便它与 GET 调用配对。如何显示 schema_model?

import requests
from flask import Flask, request, json, jsonify, Blueprint
from flask_restplus import Resource, Api, reqparse, fields, SchemaModel

app = Flask(__name__)
api = Api(app, title='Function Test', doc='/FT')

rbt = api.namespace('RBT', description='Accessible by API')

address = api.schema_model('Address', {
'properties': {
'road': {
'type': 'string'
},
},
'type': 'object'
})

@rbt.route('/<string:resource>/<string:responder>/<string:tag>')
class RBT(Resource):

@rbt.doc(responses={
200: 'Success',
400: 'Validation Error',
500: 'Internal Server Error'
})

#@rbt.marshal_with(address)
def get(self, resource, responder, tag, **kwargs):
'''TC#1 Definition'''
url2 = 'http://' + host + port + '/' + resource + '?' +responder
print(url2)

url = 'http://httpbin.org/get'

parameters = {'resource': resource, 'responder':responder, 'tag': tag}
r = requests.get(url)
data = r.text

return data

最佳答案

关于 flask rest_plus 中序列化(又名编码)和反序列化的一般概念的一些评论:

  • 用于输出(序列化)使用 @api.marshall_with(some_serializer) - 这将用于在 GET 中显示返回的对象,但如果您的返回对象在 POST 或其他方法中响应,也会生成创建的对象。
  • 用于输入(反序列化)用户 @api.expect(some_deserializer, validate=True) - 这将用于将传入的 JSON 转换为 python 对象并验证数据的形状是否正确。

  • 关于 基于 JSON 模式的序列化程序 - 可悲,但直截了当的答案是:
    api.schema_model()(基于 JSON 模式的解/序列化器)的功能 IS NOT WORKING rest_plus 中正确查看 github 问题:
  • https://github.com/noirbizarre/flask-restplus/issues/293
  • https://github.com/noirbizarre/flask-restplus/issues/275
  • 关于python - 如何使用 flask_restplus 显示模式示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48710563/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com