Процент-кодировка в шаблонах 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. Надеюсь, это поможет.

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