Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用flask_restplus显示模式示例?_Python_Rest_Swagger_Jsonschema_Flask Restplus - Fatal编程技术网

Python 如何使用flask_restplus显示模式示例?

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

[使用Python、Flask、Flask_restplus、Swagger]

我正在尝试使用
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
    或其他方法中响应返回对象,则也会显示生成的对象
  • 用于输入(反序列化)用户
    @api.expect(某些反序列化程序,validate=True)
    -这将用于将传入的JSON转换为python对象,并验证数据的形状是否正确
关于基于JSON模式的序列化程序——sad,但简单的答案是:

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