От новичка до гуру: Курсы программирования на CyberDuff

APIB — всегда отвечает на запрос POST, независимо от полезной нагрузки запроса.

Я пытаюсь смоделировать API с помощью комбинации Api Blueprint и Drakov. Однако для одной конкретной конечной точки я заранее не знаю, какой будет полезная нагрузка запроса. См. приведенный ниже код.

# Group Stuff

Description about stuff.

## Main Stuff Resource [stuff/{userId}/response/{responseId}]

+ Parameters
    + userId: specialUser (string, required) - ID of user
    + responseId: 0f9d78ee-005056ad6f10 (string, required) - ID for a particular response.

### Submit Survey Form [POST]

+ Attributes
    + attribute1 (array[object]) - Description for attribute 1
    + attribute2 (array[object]) - Description for attribute 1

+ Request (application/json)
    {attribute1:[],attribute2[]}

+ Response 201  (text/plain; charset=utf8)
    + Headers
        X-XSS-Protection: 0
        Vary:Origin,Accept-Encoding
        Access-Control-Allow-Credentials:true
    + Body
        http://fakeurl.com

Приведенный выше код работает, но только тогда, когда полезная нагрузка запроса равна точно {attribute1:[],attribute2:[]}. Даже разные пробелы, кажется, подсказывают, возвращая пользователю 404 и журнал ошибок от Дракова: [WARNING] JSON body could not be parsed. Using body as is.

Я пробовал удалить раздел Attributes, удалить раздел Request, удалить пример JSON из раздела Request, удалить все, кроме раздела Response, а также использовать раздел Schema. Кажется, ни один из них не работает, и я не могу найти упоминания об этом в документах API Blueprint.

Как я могу всегда возвращать этот ответ на запрос POST в этой конечной точке, если я не знаю, какой формат полезной нагрузки запроса или содержимое attribute1 и attribute2 будет?


Ответы:


1

Привет, @LanceLafontaine, я один из сопровождающих Дракова.

Вы пытались изменить запрос на { "attribute1": [], "attribute2": [] } (в файле спецификаций Blueprint API)

Также не стесняйтесь опубликовать проблему в репозитории Drakov http://github.com/Aconex/drakov/issues

Прошло некоторое время с тех пор, как я просмотрел код синтаксического анализа, но я не думаю, что раздел Attribute анализируется Драковым, он попытается сопоставить раздел Request на основе того, что вы опубликовали.

08.07.2016
  • Кажется, это работает. Кажется, это комбинация использования раздела «Запросы», а также кавычек вокруг атрибутов, которые приводят к его работе. +1 12.07.2016
  • Новые материалы

    Представляем Narwhal Technologies (Nrwl)
    6 декабря 2016 г. Маунтин-Вью, Калифорния С тех пор, как Виктор Савкин и я (Джефф Кросс) присоединились к команде Angular в Google на заре Angular 1, Angular продемонстрировал феноменальный..

    Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
    Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..