initial public commit
This commit is contained in:
260
system/core/events/events-rest/README.md
Normal file
260
system/core/events/events-rest/README.md
Normal file
@ -0,0 +1,260 @@
|
||||
#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": "<topic_name>",
|
||||
"subscriberErrors": {
|
||||
"systemNotFound": [
|
||||
"<system_uuid>"
|
||||
]
|
||||
},
|
||||
"publisherErrors": {
|
||||
"systemNotFound": []
|
||||
}
|
||||
}
|
||||
|
||||
- update - изменить топик (название не меняется, так как на него завязана сама очередь в брокере)
|
||||
Запрос:
|
||||
POST server:9090/topic-management/update
|
||||
Тело
|
||||
}
|
||||
"topicName": "boomNews",
|
||||
"possibleSubscribers" : ["systemUuid1", "systemUuid2"],
|
||||
"possiblePublishers" : ["systemUuid3", "systemUuid4"]
|
||||
}
|
||||
Ответ:
|
||||
Статус 201
|
||||
Тело
|
||||
{
|
||||
"title": "Topic updated",
|
||||
"topicName": "<topic_name>",
|
||||
"subscriberErrors": {
|
||||
"systemNotFound": [
|
||||
"<system_uuid>"
|
||||
]
|
||||
},
|
||||
"publisherErrors": {
|
||||
"systemNotFound": []
|
||||
}
|
||||
}
|
||||
|
||||
- delete - удалить топик, так же удаляется подписки, права и консьюмеры в брокере
|
||||
Запрос:
|
||||
POST server:9090/topic-management/delete
|
||||
Тело
|
||||
{
|
||||
"topicName": "boomNews"
|
||||
}
|
||||
|
||||
Ответ:
|
||||
Статус 200
|
||||
Тело
|
||||
{
|
||||
"title": "Topic deleted",
|
||||
"topicName": "<topic_name>"
|
||||
}
|
||||
|
||||
- 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": "<topic_name>",
|
||||
"systemName": "<system_name>",
|
||||
"subscriptionType": "<subscription_type>"
|
||||
}
|
||||
|
||||
Массовая обработка при наличии права 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": "<topic_name>",
|
||||
"systemName": "<system_name>"
|
||||
}
|
||||
|
||||
Массовая обработка при наличии права 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": "<topic_name>"
|
||||
}
|
||||
|
||||
**Ответ при ошибке**
|
||||
|
||||
- Передан некорректный 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}"
|
||||
}
|
Reference in New Issue
Block a user