Я новичок в использовании Python, я занимаюсь микросервисом, и у меня возникла проблема, связанная с документом с помощью Swagger из библиотеки Flask в Python.У меня есть процесс, который возвращает varchar2 в формате JSON следующим образом:
{"role":"string",
"identification":"string",
"class":"string",
"address":{"streetNr":"string",
"streetName":"string",
"locality":"string",
"city":"string",
"stateOrProvince":"string",
"country":"string",
"geo":{"geometryType":"string",
"spatialRef":"string",
"geometry":[{"x":"number",
"y":"number",
"z":"number"}]}},
"geo":{"x":"number",
"y":"number",
"z":"number"},
"zone":[{"type":"string",
"value":"string"}],
"properties":[{"name":"string",
"value":"string"}]}
Я хочу оставить этот вывод в swagger.Я не знаю много о том, как это сделать, но я определил это таким образом в Python:
geometry_format = {
"x": fields.String,
"y": fields.String,
"z": fields.String
}
geo_format = {
"geometryType": fields.String,
"spatialRef": fields.String,
"geometry": fields.List(fields.Nested(geometry_format))
}
properties_format = {
"name": fields.String,
"value": fields.String
}
address_format = {
"streetNr": fields.String,
"streetName": fields.String,
"locality": fields.String,
"city": fields.String,
"stateOrProvince": fields.String,
"country": fields.String,
"geo": fields.Nested(geo_format)
}
md_respuesta = api.model('attributes', {
"role": fields.String(required=True, description='Object Role'),
"identification": fields.String(required=True, description='Object Id'),
"class": fields.String(required=True, description='Object Class'),
"address": fields.List(fields.Nested(address_format)),
"geo": fields.List(fields.Nested(geo_format)),
"zone": fields.String(required=True, description='Object Zone'),
"properties": fields.List(fields.Nested(properties_format))
})
Но это не работает.Любые предложения, пожалуйста?Это неправильно?
- ***********************************************
Приветствую, ребята.Я уже нашел решение прокомментировать в чванстве этот тип элементов.Я покажу вам пример.
ns = api.namespace('attributes', description='Retorna los atributos del elemento')
geometry_format = api.model('geometry', {
"x": fields.String(description='Coordenada X'),
"y": fields.String(description='Coordenada Y'),
"z": fields.String(description='Coordenada Z')
})
geo_format = api.model('geo', {
"geometryType": fields.String (description='Tipo de Geometria'),
"spatialRef": fields.String(description='Referencia espacial'),
"geometry": fields.List(fields.Nested(geometry_format))
})
address_format = api.model('address', {
"streetNr": fields.String(description='Altura de la calle'),
"streetName": fields.String(description='Nombre de la calle'),
"locality": fields.String(description='Localidad de la calle'),
"city": fields.String(description='Ciudad'),
"stateOrProvince": fields.String(description='Estado o Provincia'),
"country": fields.String(description='Pais'),
"geo": fields.Nested(geo_format)
})
zone_format = api.model('zone', {
"type": fields.String(description='Tipo'),
"value": fields.String(description='Valor')
})
properties_format = api.model('properties', {
"name": fields.String(required=True, description='Nombre de la propiedad'),
"value": fields.String(required=True, description='Valor de la propiedad'),
})
md_respuesta = api.model('attributes', {
"role": fields.String(required=True, description='Rol del objeto'),
"identification": fields.String(required=True, description='Id del objeto'),
"class": fields.String(required=True, description='Clase del objeto'),
"address": fields.Nested(address_format, description='Contenedor de la direccion'),
"geo": fields.Nested(geometry_format, description='Descripcion de los datos Geograficos'),
"zone": fields.Nested(zone_format, description='Descripción de la zona'),
"properties": fields.List(fields.Nested(properties_format), description='Descripcion de las propiedas del objeto')
})
Надеюсь, это поможет тем, у кого такая же проблема