RESTful API: требуется строка агента пользователя? - PullRequest
16 голосов
/ 06 июня 2011

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

Итак, должен ли я сделать API более надежным и просто использовать строку по умолчанию (т.е. «неизвестно»), если пользовательский агент не включен в запрос? Или я должен вернуть ответ 400 Bad Request в этой ситуации? Я знаю, что это возможно, но я ищу стандартный способ сделать это.

1 Ответ

20 голосов
/ 06 июня 2011

Поскольку заголовок User-Agent не обязательно должен присутствовать в HTTP-запросах (спецификация гласит: заголовок SHOULD, а не MUST), ваш API будет более устойчивымесли бы он мог справиться с его отсутствием.

Тем не менее, для вашего тестового приложения было бы неплохо передать User-Agent идентификатор «тестового приложения» или что-то в этом роде, просто чтобы вы могли отслеживать это в своембазы данных, или для регулирования или профилирования вашего тестового трафика.

Я бы предостерег вас не использовать User-Agent в качестве окончательного идентификатора клиентского приложения, поскольку оно так легко подделывается.Не похоже, что вы это делаете, но я подумал, что упомяну это.

...