Избегайте Необязательного Параметра Запроса В Сборке Swagger-Codegen

#swagger #swagger-codegen #swagger-codegen-maven-plugin

Вопрос:

Я создал клиент python из нашего приложения spring boot, используя swagger-codegen.

Все API работают хорошо, за исключением случаев, когда дело доходит до вызова API, которые имеют необязательные параметры (требуется = False).

  • При вызове API с необязательным параметром, когда мы не передаем какое-либо значение параметру api, по умолчанию оно равно None.
  def get_http_info(self, **kwargs): 
      # This is the optional query parameter
      all_params = ['region_id'] 

      # It gets set here if present in the API call, otherwise it is None by default.
      query_params = []
      if 'region_id' in params:
         query_params.append(('regionId', params['region_id']))  # noqa: E501

 
  • Затем это передается как значение «Нет» на внутренний сервер, который фактически ожидает значение null (если необязательный параметр не задан).
  @Override
 public ResponseEntity<List<Info>> getInfo(@Valid String regionId) {
     // When regionId is left blank in the python API call, it is coming to the backend as "None"
 }
 
  • Следовательно, внутренний сервер возвращает неверный код состояния.

Я столкнулся с этими двумя проблемами с кодом swagger (похоже, они все еще открыты), которые, похоже, связаны:

Есть ли способ гарантировать, что при создании клиента python с помощью swagger-codegen мы создадим конструктор, который не будет передавать необязательный параметр запроса, если он не указан в вызове API ?