Проблемы с использованием вложенных или списочных полей в Swagger Python - PullRequest
0 голосов
/ 26 ноября 2018

Я новичок в использовании 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')
})

Надеюсь, это поможет тем, у кого такая же проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...