HTTP (API)
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 }}