Arhn - архитектура программирования

swagger / flask: как обрабатывать параметры запроса с тире

Я создал фляжный сервер с Swagger / OpenAPI, используя файл определения YAML. Выдержка из конечной точки GET:

 parameters:
    - in: query
      name: project-name
      required: true
      schema:
        type: string
      description: name of the project
    - in: query
      name: file-name
      required: true
      schema:
        type: string
      description: name of the origin file of the dataset
    - in: query
      name: null-management
      required: true
      schema:
        type: string
      description: value to use to fill null values in datasets
    - in: query
      name: category-name
      schema:
        type: string
      description: name of the first level category
    - in: query
      name: filter-multi-occurrence
      schema:
        type: boolean
        description: if multi occurrences are to be filtered or not

проблема в том, что я не могу сопоставить его с контроллером Python / Flask, потому что переменные должны быть такими

def dataset_add(project_name: str, file_name: str, null_management: str, first_level_category_name: str = None,
            filter_multi_occurrence: str = None) -> str:  # noqa: E501

... и тире не допускаются в именах переменных Python. Но я не хочу использовать символы подчеркивания в запросе GET ... как я могу решить эту проблему во Flask?


Ответы:


1

Вы действительно можете это сделать, но используя обходной путь.

Сначала вам нужно обновить swagger/swagger.yaml в сгенерированном коде и убедиться, что все имена параметров имеют - вместо _

Затем вам нужно обновить свою функцию и удалить _ из имени параметра.

def dataset_add(projectname: str, filename: str, nullmanagement: str, firstlevelcategoryname: str = None,
            filtermultioccurrence: str = None) -> str:  # noqa: E501

Работает нормально

14.05.2020
  • Так работает генератор, поэтому он не имеет ничего общего с connexion 15.05.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..