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

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

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

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

3 ответа

Решение

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

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

Поэтому: давайте не будем нарушать соглашения.

а также

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

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

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

URL-адреса HTTP не чувствительны к регистру для схемы и части узла и регистр для пути, запроса и фрагмента.

http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25

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

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

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

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

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

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

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

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