Я пытаюсь установить значение свойства 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 в заголовке запроса?
Клиенту не нужно предоставлять данные через тело, потому что данные извлекаются через вызов некоторого внешнего API. Но в конце концов я вставляю полученные данные в базу данных. Поскольку вызов изменяет мою базу данных, я не хочу использовать GET.
Вы должны только попытаться определить пользовательские заголовки в RAML. Обязательный заголовок протокола HTTP, такой как Content-Length, не должен быть определен. Он должен генерироваться автоматически, чтобы предотвратить ошибки.
Я где-то читал, что запрос POST с пустым телом может быть отклонен некоторыми прокси, если не указана длина содержимого 0. Это неправда?
Это вроде как требуется, но это сложно. См. этот ответ: stackoverflow.com/a/14759645/721855. Просто позвольте инструменту сгенерировать его на основе тела и отправить тело пустым. Насколько мне известно, в RAML нет хорошего способа моделирования пустых тел.
почему вы пытаетесь отправить POST с нулевой длиной (т.е. без тела)?