[使用Python,Flask,flask_restplus,Swagger]
我尝试使用schema model
在下方显示flask_restplus
。
yml中的原型模式而不是python:
我创建了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
答案 0 :(得分:0)
关于在烧瓶中进行序列化(也称为封送处理)和反序列化的一般概念的几点评论, rest_plus :
@api.marshall_with(some_serializer)
-这将用于在GET
中显示返回的对象,如果返回的对象在POST
中显示,则将显示已创建的对象,或者其他方法。@api.expect(some_deserializer, validate=True)
-这将用于将传入的JSON转换为python对象并进行数据形状正确性的验证。关于基于JSON模式的序列化器-可悲的是,简单的答案是:
api.schema_model()
(基于JSON模式的de / serializer)的功能无法正常工作,请参见rest_plus
,请参见github问题: