RAML, укажите значение Content-Length запроса API

Я пытаюсь установить значение свойства Content-Length равным 0 в моем файле RAML.
Я впервые наткнулся на эту тему: Как указать значение заголовка запроса API в RAML

Когда я попытался реализовать его с помощью этого кода:

/update:
  post:
    description: Store updated data in database
    headers:
      Content-Length:
        enum: [0]
    body:
      ...

Я получил ответ 400 Bad Request :

   {
  "code": "REQUEST_VALIDATION_ERROR",
  "message": "Required header Content-Length is missing."
  }

Моя IDE сказала мне, что ожидалась строка, но ввод ["0"] не решил проблему. (Я тестирую свою спецификацию API в Mulesoft Design Center.)

Так я что-то сделал не так или есть другой способ установить Content-Length в 0 в заголовке запроса?

почему вы пытаетесь отправить POST с нулевой длиной (т.е. без тела)?

aled 03.05.2022 12:28

Клиенту не нужно предоставлять данные через тело, потому что данные извлекаются через вызов некоторого внешнего API. Но в конце концов я вставляю полученные данные в базу данных. Поскольку вызов изменяет мою базу данных, я не хочу использовать GET.

Henry Mont 03.05.2022 14:14
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
2
17
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны только попытаться определить пользовательские заголовки в RAML. Обязательный заголовок протокола HTTP, такой как Content-Length, не должен быть определен. Он должен генерироваться автоматически, чтобы предотвратить ошибки.

Я где-то читал, что запрос POST с пустым телом может быть отклонен некоторыми прокси, если не указана длина содержимого 0. Это неправда?

Henry Mont 03.05.2022 14:17

Это вроде как требуется, но это сложно. См. этот ответ: stackoverflow.com/a/14759645/721855. Просто позвольте инструменту сгенерировать его на основе тела и отправить тело пустым. Насколько мне известно, в RAML нет хорошего способа моделирования пустых тел.

aled 03.05.2022 17:13

Другие вопросы по теме