Как обрабатывать необязательные параметры в Swagger, чтобы избежать ошибки пропущенного позиционного аргумента?

#python-3.x #swagger #connexion

#python-3.x #swagger #подключение

Вопрос:

У меня есть файл Swagger для моих конечных точек, одна из моих конечных точек имеет несколько параметров. Как вы обрабатываете необязательные параметры? У меня возникла проблема с тем, как справиться с этим в моем файле Python, если необязательные параметры имеют пустое значение.

Вот мое определение Swagger:

 /surveyData:
    get:
      operationId: "surveyData.read_surveydata"
      summary: Gets the survey data for the client insights tracker.
      parameters:
        - in: query
          name: startDate
          type: string
          required: true
          description: The start date of the survey data.
        - in: query
          name: endDate
          type: string
          required: true
          description: The end date of the survey data.
        - in: query
          name: country
          type: string
          description: The countries from which you would like to filter the survey data.
        - in: query
          name: market
          type: string
  

и вот моя функция, которая написана на Python (с использованием Connexion):

 def read_surveydata(startDate, endDate, country, market):
  

Комментарии:

1. Я считаю, что нет, этот вопрос касается подключения к фреймворку

Ответ №1:

Вы можете добавить тег «Default», например:

       parameters:
        - name: filtros
          in: "query"
          required: false
          description: Filter to query
          type: "string"
          default: "bndu"
  

Или добавьте аргумент по умолчанию

 def read_surveydata(startDate, endDate, country, market='store'):
  

Комментарии:

1. Привет @Kevin Martins, спасибо! это дает мне некоторое представление, но, кстати, каков ваш подход к запросу, вы используете ORM или SQL-запрос?

2. Привет @PaulCaballero Я использую sqlalchemy ORM sqlalchemy.org

3. Привет @Kevin Martins, да, я использую хранимую процедуру, хотя. Спасибо!

4. @PaulCaballero Хорошо! Если вам что-нибудь нужно, просто поговорите 🙂