Существует ли какое-либо соглашение REST для обработки ресурсов с косой чертой?
Например, предположим, что обычный ресурс REST работает так:
/ice cream/chocolate
- возвращает ингредиенты шоколадного мороженого/ice cream/rocky road
- возвращает ингредиенты мороженого "Каменная дорога"/ice cream/strawberry/banana
- возвращает ингредиенты клубничного банана
Только /ice cream/strawbery/banana
не совсем работает, потому что это похоже на ресурс для клубники с подкомпонентом банана.... не совсем то, что нам нужно.
Когда вы пытаетесь избежать '/'
с помощью '%2F'
, многие веб-серверы (включая Glassfish и Apache) блокируют это по умолчанию как возможное нарушение безопасности. Есть переопределение сервера, но тогда мне нужно будет привлечь другую команду... Я бы предпочел сам справиться с этим.
Так что же делать человеку с RESTful разумом? Я не могу помешать кому-то назвать свое мороженое «клубничным/банановым».
Я думал об использовании какой-нибудь пользовательской escape-последовательности, такой как stawberry*slash*banana
, а затем заставить любой компонент дисплея выполнить преобразование на своей стороне, но я подумал, что другие, должно быть, сталкивались с подобными проблемами, так почему бы не спросить о наилучшей практике (или, по крайней мере, о некоторых идеях). Это имеет смысл)?