SHM позволяет использовать шаблоны для внешнего использования
Поддерживаемые методы:
- GET
- POST
HTTP адрес
Доступ к шаблону с именем my_template
Для пользователей
Доступ с авторизацией:
/shm/v1/
Пример для curl
curl -s -u 'admin:admin' http://127.0.0.1:8081/shm/v1/template/my_template
Более детально о вариантах аутентификации можно почитать здесь
Для публичного использования
/shm/v1/
Для того, чтобы шаблон работал без авторизации необходимо прописать в его settings параметр:
allow_public: true
В публичных шаблонах переменная user не устанавливается автоматически, но её можно установить самостоятельно:
-
Указать идентификатор вручную (статически):
в шаблоне:
{{ user = user.switch( 123 ) }} -
Указать идентификатор через HTTP запрос:
/shm/v1/public/my_template?uid=123в шаблоне:
{{ user = user.switch( request.params.uid ) }}
Пример для curl
curl -s http://127.0.0.1:8081/shm/v1/public/my_template?uid=123
Пример шаблона для проверки существования пользователя:
{{ IF user.switch( request.params.uid ).id }}
...
{{ END }}
Аргументы
В строку запроса можно добавить любые аргументы. Внутри самого шаблона к ним можно обратиться через переменную request.params
{{ foo = request.params.foo }}
Ниже приведен список специальных аргументов:
format - формат отдаваемого контента (MIME types)
plain(text/plain)html(text/html)json(application/json)other(application/octet-stream)qrcode
user_id - зарезервирован
В случае работы с шаблоном из под прав администратора можно явно указать идентификатор пользователя
HTTP заголовки
В шаблонах можно читать заголовки. Их удобно использовать для различных проверок
{{ headers = request.headers }}
Пример шаблона для проверки заголовка x-webhook-secret:
{{ IF request.headers.x-webhook-secret == 'something-very-very-secret' }}
...
{{ END }}