Подтвердить что ты не робот

Должен ли REST API быть чувствительным к регистру или не чувствительным к регистру?

На работе у нас возникла проблема с чувствительным к регистру REST api, который игнорирует ошибочно записанные параметры, не возвращая никакой ошибки. По-моему, это плохо. Тогда возникает общий вопрос:

Если REST API чувствителен к регистру или не чувствителен к регистру?

Каковы преимущества и недостатки каждого подхода?

4b9b3361

Ответ 1

Как и другие, HTTP-часть URL-адреса, которая делает API, чувствительна к регистру. Это следует за соглашением UNIX, где пути URI сопоставляются с путями файловой системы, а пути файловой системы зависят от регистра. Windows, с другой стороны, следует своему соглашению о создании путей без учета регистра.

Однако в Unix неверно использовать два пути, которые отличаются только капитализацией; кроме того, ожидается, что пути будут более строчными.

Поэтому: не прерывайте условные обозначения.

и

никогда не должен когексист. Кроме того, products следует отдать предпочтение products. Если products должен возвращать 404, от 301 до products или просто быть псевдонимом products, это вопрос стиля - это ваш выбор, но быть последовательным.

API-интерфейсы канонически низки и нечувствительны к регистру. Я думаю, что это облегчает жизнь клиенту, но имеет четкую дефолт и неудивительно для большинства пользователей.

В конце концов, можете ли вы подумать о клиенте, который честно выигрывает от чувствительности к регистру и перекрывающихся имен?

Ответ 3

На работе у нас возникла проблема с чувствительным к регистру REST api, который игнорирует неправильно заданные параметры, не возвращая никакой ошибки. по моему мнению это плохо.

Тогда не делайте этого. Подтвердите свои параметры. Принудительные "отсутствующие" параметры. Не отправляйте плохие запросы в первую очередь. Соответствие API, особенно при таком уровне написания параметров правильно, не является грубой нагрузкой.

Если REST API чувствителен к регистру или не чувствителен к регистру?

Как уже упоминалось, URL-адреса чувствительны к регистру, поэтому здесь не так много места для переговоров. Up/downshifting urls/parameters смущает всех, и это делает ваши URL уникальными. Опять же, это не является крайним требованием ожидать, что разработчики будут использовать правильные URL-адреса. Эти URL-адреса (скорее всего) не набраны случайными людьми, они внедрены кода или веб-страниц. Наконец, это влияет только на URL точки входа. Остальные URL-адреса должны быть прямыми копиями, снятыми с полезных нагрузок, потому что вы следуете за HATEOAS. Эти URL-адреса не следует путать вообще и просто отсылать назад.

Просто, если чувствительность к регистру является проблемой, вы делаете это неправильно.

Каковы преимущества и недостатки каждого подхода?

Преимущества - это согласованность, ясность и правильное применение вашего API. Нет недостатков.