Принципы написания point'ов
Зарезервированные слова
Во избежание коллизий со словами, зарезервированными для использования в служебных целях, не рекомендуется использовать следующие имена и ключи элементов базовых запросов:
- Имена и ключи, которые совпадают с названиями парсеров;
- Имена и ключи, которые совпадают с названиями фильтров;
- Имена и ключи, которые совпадают со служебными словами:
name
,value
.
Существуют универсальные принципы конструирования point'ов, знакомство с которыми облегчит процесс разработки кастомного расширения:
Point воспринимается как регулярное выражение.
Пример:
- Point
HEADER_A.*_value
будет указывать на заголовок с именем, начинающимся наА
, если такой присутствует в запросе. - Point
PATH_\d_value
будет указывать на первые 10 частей пути URI запроса.
- Point
Части point'а отделяются друг от друга символом нижнего подчеркивания
_
.Пример:
URI_value
;Названия парсеров и фильтров в point'е пишутся прописными буквами.
Пример:
ACTION_EXT_value
;Имена элементов запросов в point'е должны быть указаны в точности так же, как и в базовом запросе.
Пример:
Для запроса
GET http://example.com/login/?Uid=01234
pointGET_Uid_value
указывает на строковый параметр с именемUid
;Экранирование спецсимволов
При использовании некоторых служебных символов в именах элементов запроса может потребоваться их экранирование. Подробная информация доступна в документации по регулярным выражениям Ruby.
Point может быть включен в расширение в следующем виде:
Point окружен кавычками
"
.Пример:
"PATH_.*_value"
;Point окружен апострофами
'
.Пример:
'GET_.*_value'
;Point не окружен никакими служебными символами.
Пример:
HEADER_.*_value
.
Окружение point'а символами
Разница в использовании символов, которыми могут быть окружены point'ы, обусловлена синтаксисом YAML. Более подробная информация доступна по ссылке.
Point'ы, разделенные запятой
,
и окруженные квадратными скобками[
и]
воспринимаются как массив point'ов.Пример:
[GET_uid_value, GET_passwd_value]
;В конце point'а всегда ставится служебное слово как указание на необходимость работы со значением или с именем элемента запроса, к которому происходит обращение с помощью point’а:
name
— служебное слово, которое необходимо указывать в point'е для работы с именем элемента запроса.Служебное слово
name
может использоваться совместно со следующими фильтрами:- Xml_pi;
- Xml_dtd_entity.
Пример:
Point
POST_XML_XML_DTD_ENTITY_0_name
указывает на имя первой директивы DTD-схемы в теле запроса формата XML.value
— служебное слово, которое необходимо указывать в point'е для работы со значением элемента запроса.Служебное слово
value
может использоваться совместно со всеми доступными фильтрами и парсерами FAST DSL.Пример:
Point
PATH_0_value
указывает на значение первой части пути в URI запроса.
results matching ""
No results matching ""
results matching ""
No results matching ""