Какой HTTP-заголовок следует использовать для указания стилистических свойств ответа HTTP, в частности, в случае ключей в объекте JSON? Примечание. Я разрабатываю REST API, где я бы хотел, чтобы клиенты предоставили ожидаемый случай, например camelCase
или snake_case
.HTTP-заголовок для указания требуемого стилистического свойства для тела ответа
Когда camelCase
задан ответ будет выглядеть следующим образом:
{
"peopleUrl": "…",
"postsUrl": "…"
}
Когда snake_case
задан ответ будет выглядеть следующим образом:
{
"people_url": "…",
"posts_url": "…"
}
заголовкам Я смотрел на являются Expect
и Prefer
, Expect
описывается как обязательная конфигурация, которую сервер должен соблюдать или ошибка, а Prefer
описывается как необязательная конфигурация. Конкретный синтаксис я смотрел на это:
Expect: case=camel
или:
Prefer: case=camel
В настоящее время, я чувствую, как Expect
лучше, потому что он требует настройки. Однако, хотя в RFC 2616 предусмотрен механизм расширения для Expect
, однако в RFC 7231 этот механизм расширения был удален, и разрешено только поле 100-continue
(перейдите на следующую страницу, чтобы увидеть примечание, предоставляющее ордер). Заголовок Prefer
был указан в RFC 7240, а -, как представляется, имеет механизм расширения.
Какой заголовок лучше всего подходит для этой конфигурации? Я смотрю в неправильном направлении с Expect
и Prefer
?
_ «Я бы хотел, чтобы клиенты предоставили ожидаемый случай» _ - ** почему? ** Просто запишите один корпус, и пусть ваши клиенты придерживаются этого ...В любом случае, как вы можете прочитать в RFC 7240, вам нужно будет зарегистрировать расширения 'Prefer' с IANA. – CodeCaster
Если у вас есть API, который должен обслуживать данные на нескольких разных платформах, полезно разрешить им выбирать, какой формат они хотят. Клиент JS может захотеть 'camelCase', тогда как PHP-клиент может захотеть' snake_case'. Даже если это плохая идея, поиск подходящего заголовка остается актуальным вопросом. – Calebmer
Вы поставщик услуг, вы определяете формат. Я не говорю, что это неверный вопрос, просто глупый. Не забывайте о накладных расходах, которые могут возникнуть на вашей стороне. Во всяком случае, нет существующего заголовка, который вы можете использовать для этого. – CodeCaster