Конфигурация REST для адаптера под формат CloudEvent#
Данный раздел применим для роли Администратор.
Предусловия#
Не требуются.
Последовательность выполнения#
Адаптер EVTA под формат CloudEvent поддерживает работу с помощью REST взаимодействия. Если в конфигурационном файле adapter.conf в поле server: type установлено rest, то адаптер EVTA позволяет обращаться извне к брокерам сообщений при помощи REST взаимодействия соответственно.
Имеется 3 типа запросов POST:
запрос на публикацию;
запрос на создание вебхука;
запрос на удаление вебхука.
1. Пример запроса на публикацию:
curl -X POST http://localhost:8080/publish -H "Content-Type: application/json" -H "ce-id: 123" -H "ce-source: ru.sbt.ss.event" -H "ce-type: ru.sbt.ss.event" -H "ce-specversion: 1.0" -d "test"
Заголовки конвертируются в поля CloudEvent:
ce-id— идентификатор события (CloudEvents ID);ce-source— источник события;ce-type— тип события;ce-specversion— версия спецификации CloudEvents, используемой для формирования сообщений.
Тело запроса конвертируется в поле data формата CloudEvent.
2. Пример запроса на создание вебхука:
curl -X POST http://localhost:8080/subscribe -H "Content-Type: application/json" -d '{"source":"ru.sbt.ss.event","url":"http://localhost:1234/test","name":"test"}'
Тело запроса конвертируется в поле data формата CloudEvent с настройками:
source— источник события (настройки по этому ключу берутся из блокаmessageконфигурационного файла *.conf);url— адрес, куда будут отправляться события (настройки по этому ключу берутся из блокаwebhookконфигурационного файла *.conf);name— имя создаваемого вебхука.
Пример сообщения в JSON-формате:
{
"source": "источник события",
"url": "адрес, куда будут отправляться события",
"name": "имя создаваемого вебхука"
}
3. Пример запроса на удаление вебхука:
curl -X POST http://localhost:8080/unsubscribe -H "Content-Type: application/json" -d '{"name":"test"}'
Тело запроса конвертируется в поле data формата CloudEvent с настройкой:
name— имя удаляемого вебхука.
Пример сообщения в JSON-формате:
{
"name": "имя удаляемого вебхука"
}
Возвращаемые статусы для REST#
Вид статуса |
Код |
Значение |
Статус |
Описание |
|---|---|---|---|---|
Общие статусы |
405 |
MethodNotAllowed |
Метод отличен от POST |
|
500 |
InternalServerError |
Любая другая ошибка |
В теле сообщение |
|
publish |
201 |
Created |
Корректно |
В теле сообщение |
500 |
InternalServerError |
Любая другая ошибка |
В теле сообщение |
|
400 |
BadRequest |
Для источника отсутствуют настройки транспорта |
В теле сообщение |
|
403 |
Forbidden |
В запросе отсутствует memberId |
В теле сообщение |
|
403 |
Forbidden |
Отсутствие прав на публикацию |
В теле сообщение |
|
Создание вебхука (subscribe) |
201 |
Created |
Корректно |
В теле сообщение |
500 |
InternalServerError |
Любая другая ошибка |
В теле сообщение |
|
403 |
Forbidden |
В запросе отсутствует memberId |
В теле сообщение |
|
403 |
Forbidden |
Отсутствие прав на подписку |
В теле сообщение |
|
400 |
BadRequest |
Для источника отсутствуют настройки транспорта |
В теле сообщение |
|
400 |
BadRequest |
Ошибка при создании вебхука |
В теле сообщение |
|
Удаление вебхука (unsubscribe) |
200 |
OK |
Корректно |
В теле сообщение |
500 |
InternalServerError |
Любая другая ошибка |
В теле сообщение |
|
403 |
Forbidden |
В запросе отсутствует memberId |
В теле сообщение |
|
403 |
Forbidden |
Отсутствие прав |
В теле сообщение |
|
400 |
BadRequest |
Неизвестный вебхук |
В теле сообщение |
Правила эксплуатации#
Не требуется.
Результат#
Конфигурация REST для адаптера под формат CloudEvent настроена.