Принципы написания point'ов

Зарезервированные слова

Во избежание коллизий со словами, зарезервированными для использования в служебных целях, не рекомендуется использовать следующие имена и ключи элементов базовых запросов:

  • Имена и ключи, которые совпадают с названиями парсеров;
  • Имена и ключи, которые совпадают с названиями фильтров;
  • Имена и ключи, которые совпадают со служебными словами: name, value.

Существуют универсальные принципы конструирования point'ов, знакомство с которыми облегчит процесс разработки кастомного расширения:

  • Point воспринимается как регулярное выражение.

    Пример:

    • Point HEADER_A.*_value будет указывать на заголовок с именем, начинающимся на А, если такой присутствует в запросе.
    • Point PATH_\d_value будет указывать на первые 10 частей пути URI запроса.
  • Части point'а отделяются друг от друга символом нижнего подчеркивания _.

    Пример:

    URI_value;

  • Названия парсеров и фильтров в point'е пишутся прописными буквами.

    Пример:

    ACTION_EXT_value;

  • Имена элементов запросов в point'е должны быть указаны в точности так же, как и в базовом запросе.

    Пример:

    Для запроса GET http://example.com/login/?Uid=01234 point GET_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 ""