Процент-кодировка в шаблонах URI
В синтаксисе uri-шаблона расширения обозначаются фигурными скобками. Правильно ли кодировать URL (т.е. кодировать проценты) при возврате шаблонных ссылок, например, в ответе API?
http://foo.example.com/users/{?user_id}
против
http://foo.example.com/users/%7B?user_id%7D
Кажется, что этот параграф стандарта может быть актуальным и указывать на то, что их нельзя избежать, но я не уверен:
http://tools.ietf.org/html/rfc6570
Типом выражения по умолчанию является простое расширение строки, в котором одна именованная переменная заменяется ее значением в виде строки после кодирования pct любых символов, не входящих в набор незарезервированных символов URI.
1 ответ
Да, некорректно URL-кодировать токены шаблона URI, если предполагается использовать строку в качестве шаблона URI, а не URI. Помните, что шаблоны URI не являются URI до тех пор, пока они не будут расширены. Если вы кодируете их, это можно считать URI, а не шаблоном. Я поддерживаю процессор Handy URI Templates для Java, и он не сможет обрабатывать закодированные токены, как этот, и будет рассматривать строку как URI. Надеюсь, это поможет.