#SYSTEM :: ENTAXY :: CORE :: EVENTS :: REST Рутовый контекст сервиса по умолчанию **topic-management**, при смене контекста требуется перераздать права на данный сервис **Методы:** - create - создать топик Запрос: POST server:9090/topic-management/create Тело } "topicName": "boomNews", "possibleSubscribers" : ["systemUuid1", "systemUuid2"], "possiblePublishers" : ["systemUuid3", "systemUuid4"] } Ответ: Статус 201 Тело { "title": "Topic created", "topicName": "", "subscriberErrors": { "systemNotFound": [ "" ] }, "publisherErrors": { "systemNotFound": [] } } - update - изменить топик (название не меняется, так как на него завязана сама очередь в брокере) Запрос: POST server:9090/topic-management/update Тело } "topicName": "boomNews", "possibleSubscribers" : ["systemUuid1", "systemUuid2"], "possiblePublishers" : ["systemUuid3", "systemUuid4"] } Ответ: Статус 201 Тело { "title": "Topic updated", "topicName": "", "subscriberErrors": { "systemNotFound": [ "" ] }, "publisherErrors": { "systemNotFound": [] } } - delete - удалить топик, так же удаляется подписки, права и консьюмеры в брокере Запрос: POST server:9090/topic-management/delete Тело { "topicName": "boomNews" } Ответ: Статус 200 Тело { "title": "Topic deleted", "topicName": "" } - clean - очистить топики и подписки, помеченные на удаление топики и подписки будут окончательно удалены Запрос: POST server:9090/topic-management/clean Ответ: Статус 200 Тело { "title": "Cleaned" } - subscribe - подписаться на топик Запрос: POST server:9092/topic-subscription/subscribe Тело { "topicName": "boomNews", "subscriptionType": "PUSH" } Ответ: Статус 201 Тело { "title": "Subscription created", "topicName": "", "systemName": "", "subscriptionType": "" } Массовая обработка при наличии права manage для данного сервиса. Запрос: POST server:9092/topic-subscription/subscribe Тело { "topicName": "boomNews", "systemUuids": [ {"systemUuid": "NNNNNNNN-NNNN-NNNN-NNNN-NNNNNNNNNNNN", "subscriptionType": "PUSH"}, {"systemUuid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "subscriptionType": "PULL"}, {"systemUuid": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY", "subscriptionType": "PULL"} ] } Ответ: Статус 200 Тело [ { "title": "Internal Server Error", "detail": "System not found NNNNNNNN-NNNN-NNNN-NNNN-NNNNNNNNNNNN", "reason": "javax.persistence.NoResultException: No entity found for query" }, { "title": "Subscription created", "topicName": "ooooo111-ff6e-4219-a878-bff120c495f1", "systemUUID": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "subscriptionType": "PULL" }, { "title": "Forbidden", "detail": "No permission to subscribe for system YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" } ] - unsubscribe - отписаться от топика Запрос: POST server:9092/topic-subscription/unsubscribe Тело { "topicName": "boomNews" } Ответ: Статус 200 Тело { "title": "Subscription deleted", "topicName": "", "systemName": "" } Массовая обработка при наличии права manage для данного сервиса. Запрос: POST server:9092/topic-subscription/unsubscribe Тело { "topicName": "boomNews", "systemUuids": [ {"systemUuid": "NNNNNNNN-NNNN-NNNN-NNNN-NNNNNNNNNNNN", "subscriptionType": "PUSH"}, {"systemUuid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "subscriptionType": "PULL"}, {"systemUuid": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY", "subscriptionType": "PULL"} ] } Ответ: Статус 200 Тело [ { "title": "Internal Server Error", "detail": "System not found NNNNNNNN-NNNN-NNNN-NNNN-NNNNNNNNNNNN", "reason": "javax.persistence.NoResultException: No entity found for query" }, { "title": "Subscription deleted", "topicName": "ooooo111-ff6e-4219-a878-bff120c495f1", "systemUUID": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" }, { "title": "Subscription not found", "topicName": "ooooo111-ff6e-4219-a878-bff120c495f1", "systemUUID": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" } ] - publish - опубликовать событие Запрос: POST server:9092/topic-subscription/publish Тело { "topicName": "boomNews", "message": "messageText2" } Ответ: Статус 200 Тело { "title": "Message published", "topicName": "" } **Ответ при ошибке** - Передан некорректный JSON или логин не определён Статус 400 Тело { "title": "Incorrect input parameters", "detail": "Cannot parse incoming JSON or login/system not defined" } - Подписка не найдена Статус 404 Тело { "title": "Subscription not found", "topicName": "${exchangeProperty.topicName}", "systemUUID": "${header.X-SystemUuid}" } - Топик не зарегистрирован Статус 400 Тело { "title": "Topic not registered", "topicName": "${exchangeProperty.topicName}" } - Система не найдена Статус 500 Тело { "title": "Internal Server Error", "detail": "System not found ${header.X-SystemUuid}", "reason": "${exception.stacktrace}" } - Неизвестный тип подписки Статус 500 Тело { "title": "Internal Server Error", "detail": "Unknown subscription type ${exchangeProperty.subscriptionType}", "reason": "${exception.stacktrace}" } - Неизвестная ошибка Статус 500 Тело { "title": "Internal Server Error", "detail": "Unknown exception", "reason": "${exception.stacktrace}" }