Swagger codegen различает значения в Python - PullRequest
0 голосов
/ 08 декабря 2018

Мы используем Swagger 2.0 для определения нашего API.У нас есть такая модель в swagger.yaml:

Reading:
  title: Reading
  type: object
  discriminator: type
  properties:
    type: 
      $ref: '#/definitions/ReadingType'

SensorReading:
  description: Teralytic probe reading
  allOf:
    - $ref: "#/definitions/Reading"
    - properties:
        value:
          description: Sensor reading value
          type: number
          format: float64

Мы используем swagger-codegen 2.4.0 для генерации клиента Python и используем python 3.7.0.

Проблемамы имеем дело с тем, когда мы вызываем нашего клиента:

response = api_instance.readings_query(start_date=start_date, end_date=end_date)

for result in api_response:
        for reading in result.readings:
            if reading.type == 'SensorReading':
                reading.__class__ = SensorReading
                pprint(reading)

Это то, как мы предполагали, что «приведем» наше чтение к его определенному типу, но это, похоже, не работает.

Мы получаем ошибку, похожую на:

AttributeError: 'SensorReading' object has no attribute '_value'

Похоже, что swagger-codegen для python не совсем это поддерживает, если мы что-то полностью не упустили.

...