Выбрасывание http 400 за отсутствующий параметр запроса и параметр запроса с символом #

Я создал API для отдыха, и у меня возникла проблема с недопустимыми запросами.

Мне нужно отправить запрос HTTP 400 BAD в ответ http для следующих запросов:

orders/{orders}/order_file.{format}

Это uri, который я использую.

Если клиенты вводят URL-адрес как orders//order_file.json, я могу выдать ошибку http 400.

Если клиенты вводят URL-адрес как orders/234#/order_file.json, я могу выдать ту же ошибку http 400.

Вместо этого элемент управления не попадает внутрь обработчиков uri для двух приведенных выше сценариев.


person subbu seshan    schedule 14.10.2014    source источник
comment
Что вы используете в качестве серверной техники?   -  person    schedule 14.10.2014


Ответы (1)


Путь

orders//order_file.json

вероятно, интерпретируется как

orders/order_file.json

Если у вас нет правила для такого пути, вы получите 404 Not Found.

Путь

orders/234#/order_file.json

имеет реальный путь orders/234 и фрагмент /order_file.json. Опять же, если у вас нет правила, соответствующего orders/234, вы получите 404 Not Found.

person Community    schedule 14.10.2014
comment
Я использую сервер tomcat, я реализовал REST, используя майку 2. * Вы были правы насчет первого. заказы//abcd берутся как заказы/abcd - person subbu seshan; 15.10.2014
comment
какой uri вы предлагаете обрабатывать второй. большое спасибо за решение!! - person subbu seshan; 15.10.2014
comment
Второй URL-адрес уже корректно обрабатывается 404 Not Found. Какой пользователь вводит 234# в качестве сегмента пути? Для таких пользователей 404 нормально, 400 не лучше. - person ; 15.10.2014
comment
понял чувак!! заказы/234#/abcd принимаются как заказы/234. Будьте здоровы - person subbu seshan; 15.10.2014