Python 如何使用flask_restplus显示模式示例?
[使用Python、Flask、Flask_restplus、Swagger] 我正在尝试使用Python 如何使用flask_restplus显示模式示例?,python,rest,swagger,jsonschema,flask-restplus,Python,Rest,Swagger,Jsonschema,Flask Restplus,[使用Python、Flask、Flask_restplus、Swagger] 我正在尝试使用flask\u restplus显示模式模型,如下图所示。 yml而非python中的原型模式: 我创建了schema\u模型,但我不确定如何将其输入到代码中,以便它与GET调用配对。如何显示schema_模型 导入请求 从flask导入flask、request、json、jsonify、Blueprint 来自flask_restplus导入资源、Api、reqparse、字段、SchemaMo
flask\u restplus
显示模式模型,如下图所示。
yml而非python中的原型模式:
我创建了schema\u模型
,但我不确定如何将其输入到代码中,以便它与GET调用配对。如何显示schema_模型
导入请求
从flask导入flask、request、json、jsonify、Blueprint
来自flask_restplus导入资源、Api、reqparse、字段、SchemaModel
app=烧瓶(名称)
api=api(应用程序,标题='功能测试',文档='/FT')
rbt=api.namespace('rbt',description='Accessible by api')
address=api.schema_模型('address'{
“属性”:{
“道路”:{
“类型”:“字符串”
},
},
“类型”:“对象”
})
@rbt.路线(“//”)
类别RBT(资源):
@rbt.doc(回复)={
200:‘成功’,
400:'验证错误',
500:'内部服务器错误'
})
#@皇家元帅(地址)
def get(自我、资源、响应者、标签,**kwargs):
“TC#1定义”
url2='http://'+主机+端口+'/'+资源+'?'+响应程序
打印(url2)
url='1〕http://httpbin.org/get'
参数={'resource':资源,'responder':responder,'tag':tag}
r=请求。获取(url)
数据=r.text
返回数据
关于烧瓶中序列化(也称封送)和反序列化的一般概念的几点评论rest\u plus:
- 对于输出(序列化),请使用
-这将用于在@api.marshall\u和(某些序列化程序)
中显示返回的对象,但如果您在GET
或其他方法中响应返回对象,则也会显示生成的对象POST
- 用于输入(反序列化)用户
-这将用于将传入的JSON转换为python对象,并验证数据的形状是否正确@api.expect(某些反序列化程序,validate=True)
api.schema\u model()
(基于JSON模式的反序列化程序)的功能在rest\u plus
中无法正常工作请参阅github问题:
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