本文整理汇总了Python中flask_restplus.Api类的典型用法代码示例。如果您正苦于以下问题:Python Api类的具体用法?Python Api怎么用?Python Api使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Api类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_marshal_with_honour_field_mask_list
def test_marshal_with_honour_field_mask_list(self):
api = Api(self.app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return [{
'name': 'John Doe',
'age': 42,
'boolean': True
}, {
'name': 'Jane Doe',
'age': 33,
'boolean': False
}]
data = self.get_json('/test/', headers={
'X-Fields': '{name,age}'
})
self.assertEqual(data, [{
'name': 'John Doe',
'age': 42,
}, {
'name': 'Jane Doe',
'age': 33,
}])
示例2: test_models
def test_models(self):
app = Flask(__name__)
api = Api(app)
todo_fields = api.model("Todo", {"task": fields.String(required=True, description="The task details")})
parser = reqparse.RequestParser()
parser.add_argument("todo", type=todo_fields)
self.assertEqual(parser_to_params(parser), {"todo": {"type": "Todo", "in": "body"}})
示例3: test_marshal_with_disabling_mask_header
def test_marshal_with_disabling_mask_header(self, app, client):
api = Api(app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
app.config['RESTPLUS_MASK_SWAGGER'] = False
specs = client.get_specs()
op = specs['paths']['/test/']['get']
assert 'parameters' not in op
示例4: test_marshal_handle_inheritance
def test_marshal_handle_inheritance(self):
api = Api(self.app)
person = api.model('Person', {
'name': fields.String,
'age': fields.Integer,
})
child = api.inherit('Child', person, {
'extra': fields.String,
})
data = {
'name': 'John Doe',
'age': 42,
'extra': 'extra'
}
values = (
('name', {'name': 'John Doe'}),
('name,extra', {'name': 'John Doe', 'extra': 'extra'}),
('extra', {'extra': 'extra'}),
)
for mask, expected in values:
result = marshal(data, child, mask=mask)
self.assertEqual(result, expected)
示例5: test_marshal_with_disabling_mask_header
def test_marshal_with_disabling_mask_header(self):
api = Api(self.app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
with self.settings(RESTPLUS_MASK_SWAGGER=False):
specs = self.get_specs()
op = specs['paths']['/test/']['get']
self.assertNotIn('parameters', op)
示例6: test_marshal_with_expose_custom_mask_header
def test_marshal_with_expose_custom_mask_header(self):
api = Api(self.app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
with self.settings(RESTPLUS_MASK_HEADER='X-Mask'):
specs = self.get_specs()
op = specs['paths']['/test/']['get']
self.assertIn('parameters', op)
self.assertEqual(len(op['parameters']), 1)
param = op['parameters'][0]
self.assertEqual(param['name'], 'X-Mask')
示例7: test_marshal_does_not_hit_unrequired_attributes
def test_marshal_does_not_hit_unrequired_attributes(self):
api = Api(self.app)
model = api.model('Person', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
@property
def boolean(self):
raise Exception()
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return Person('John Doe', 42)
data = self.get_json('/test/', headers={
'X-Fields': '{name,age}'
})
self.assertEqual(data, {
'name': 'John Doe',
'age': 42,
})
示例8: test_marshal_with_honour_header_field_mask_with_default_mask_and_default_model_mask
def test_marshal_with_honour_header_field_mask_with_default_mask_and_default_model_mask(self):
api = Api(self.app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
}, mask='{name,boolean}')
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model, mask='{name,age}')
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
data = self.get_json('/test/', headers={
'X-Fields': '{name}'
})
self.assertEqual(data, {
'name': 'John Doe',
})
示例9: test_marshal_with_honour_custom_field_mask
def test_marshal_with_honour_custom_field_mask(self):
api = Api(self.app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
with self.settings(RESTPLUS_MASK_HEADER='X-Mask'):
data = self.get_json('/test/', headers={
'X-Mask': '{name,age}'
})
self.assertEqual(data, {
'name': 'John Doe',
'age': 42,
})
示例10: test_will_prettyprint_json_in_debug_mode
def test_will_prettyprint_json_in_debug_mode(self):
self.app.config["DEBUG"] = True
api = Api(self.app)
class Foo1(Resource):
def get(self):
return {"foo": "bar", "baz": "asdf"}
api.add_resource(Foo1, "/foo", endpoint="bar")
with self.app.test_client() as client:
foo = client.get("/foo")
# Python's dictionaries have random order (as of "new" Pythons,
# anyway), so we can't verify the actual output here. We just
# assert that they're properly prettyprinted.
lines = foo.data.splitlines()
lines = [line.decode() for line in lines]
self.assertEquals("{", lines[0])
self.assertTrue(lines[1].startswith(" "))
self.assertTrue(lines[2].startswith(" "))
self.assertEquals("}", lines[3])
# Assert our trailing newline.
self.assertTrue(foo.data.endswith(b"\n"))
示例11: test_marshal_with_expose_custom_mask_header
def test_marshal_with_expose_custom_mask_header(self, app, client):
api = Api(app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
app.config['RESTPLUS_MASK_HEADER'] = 'X-Mask'
specs = client.get_specs()
op = specs['paths']['/test/']['get']
assert 'parameters' in op
assert len(op['parameters']) == 1
param = op['parameters'][0]
assert param['name'] == 'X-Mask'
示例12: test_list_fields_with_nested_inherited
def test_list_fields_with_nested_inherited(self):
api = Api(self.app)
person = api.model('Person', {
'name': fields.String,
'age': fields.Integer
})
child = api.inherit('Child', person, {
'attr': fields.String
})
family = api.model('Family', {
'children': fields.List(fields.Nested(child))
})
result = mask.apply(family.resolved, 'children{name,attr}')
data = {'children': [
{'name': 'John', 'age': 5, 'attr': 'value-john'},
{'name': 'Jane', 'age': 42, 'attr': 'value-jane'},
]}
expected = {'children': [
{'name': 'John', 'attr': 'value-john'},
{'name': 'Jane', 'attr': 'value-jane'},
]}
self.assertDataEqual(marshal(data, result), expected)
# Should leave th original mask untouched
self.assertDataEqual(marshal(data, family), data)
示例13: test_marshal_with_expose_mask_header
def test_marshal_with_expose_mask_header(self):
api = Api(self.app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
specs = self.get_specs()
op = specs['paths']['/test/']['get']
self.assertIn('parameters', op)
self.assertEqual(len(op['parameters']), 1)
param = op['parameters'][0]
self.assertEqual(param['name'], 'X-Fields')
self.assertEqual(param['type'], 'string')
self.assertEqual(param['format'], 'mask')
self.assertEqual(param['in'], 'header')
self.assertNotIn('required', param)
self.assertNotIn('default', param)
示例14: test_marshal_with_expose_mask_header
def test_marshal_with_expose_mask_header(self, app, client):
api = Api(app)
model = api.model('Test', {
'name': fields.String,
'age': fields.Integer,
'boolean': fields.Boolean,
})
@api.route('/test/')
class TestResource(Resource):
@api.marshal_with(model)
def get(self):
return {
'name': 'John Doe',
'age': 42,
'boolean': True
}
specs = client.get_specs()
op = specs['paths']['/test/']['get']
assert 'parameters' in op
assert len(op['parameters']) == 1
param = op['parameters'][0]
assert param['name'] == 'X-Fields'
assert param['type'] == 'string'
assert param['format'] == 'mask'
assert param['in'] == 'header'
assert 'required' not in param
assert 'default' not in param
示例15: test_with_readonly
def test_with_readonly(self, app):
api = Api(app)
nested_fields = api.model('NestedModel', {'name': fields.String})
field = fields.Nested(nested_fields, readonly=True)
assert field.__schema__ == {
'readOnly': True,
'allOf': [{'$ref': '#/definitions/NestedModel'}]
}