Dokumentacja dla SAREhub REST API które umożliwia wysyłanie oraz pobieranie danych z danych do/z SAREhuba.
Każde poniższe zapytanie zaczyna się od poniższego adresu URL: https://api.sarehub.com/v1
Wszystkie zapytania zwracają dane w formacie JSON.
- 200 Pomyślny GET.
- 201 Pomyślny POST i PUT.
- 401 Nieuwierzytelniony.
- 403 Zabroniony.
- 400 Będne zapytanie.
- REST API jest dozwolone tylko dla adresów IP dopisanych do whitelisty.
- Każda metoda jest zabezpieczona poprzez uwierzytelnienie Basic Auth.
POST /publish/routing/:routing
Metoda umożliwia wysłanie (opublikowanie) danych do szyny SAREhub. Parametr :routing powinien przyjąć ciąg routingu, np. hub1.message.email
Treść zapytania
W treści zapytania należy wysłać dane w formacie JSON zgodne z komunikatami SAREhub.
Nagłówki
Dodatkowo jest możliwość przesłania specjalnych nagłówków które dodają dodatkowe opcje do komunikatu:
- SAREhub-reply_to - Parametr, który powinien zawierać ciąg routingu gdzie ma zostać wysłana odpowiedź na wysłany komunikat,
- SAREhub-correlation_id - Parametr przyjmujący dowolną wartość, umożliwia powiązanie komunikatu odpowiedzi z zapytaniem,
- SAREhub-priority - Parametr określający priorytet komunikatu (int),
- SAREhub-delay - Opóźnienie po jakim czasie (w sekundach) komunikat ma trafić do szyny SAREhub.
Przykadowe zapytanie
$ curl -u module:secret https://api.sarehub.com/publish/routing/hub1.message.email
\
-H "Content-Type: application/json" \
-X POST \
-d
'{"type":"message","user":{"email":"hub@sarehub.com"},"params":{"to":"hub@sarehub.com",
"from":"test@sarehub.com","subject":"test","body":{"html":"test","txt":"test"}}}'
Odpowiedź
{
"state": "success"
}
Odpowiedź w przypadku błędu
{
"state": "error",
"message": "Treść błędu"
}
GET /consume
Metoda umożliwia pobieranie komunikatów z domyślnej kolejki. Obsługiwany moduł powinien być skonfigurowany sposób kolejkowania w trybie "single".
GET /consume/hub/:id
Metoda umożliwia pobieranie komunikatów z kolejki huba o podanym identyfikatorze. Obsługiwany moduł powinien być skonfigurowany sposób kolejkowania w trybie "single".
GET /consume/queue/:queue_name
Metoda umożliwia pobieranie komunikatów z dodatkowej kolejki o podanej nazwie. Obsługiwany moduł powinien być skonfigurowany sposób kolejkowania w trybie "single".
GET /consume/hub/:id/queue/:queue_name
Obydwie powyższe metody jednocześnie.
Parametry
Do zapytania można dostać następujące parametry:
- limit - maksymalna liczba komunikautów jaka ma zostać pobrana (domyślnie 100).
Przykadowe zapytanie
$ curl -u module:secret https://api.sarehub.com/consume?limit=2 \
-H "Content-Type: application/json" \
-X POST
Odpowiedź
{
"state": "success",
"count": 2,
"statements": [
{
"type": "message",
"user": {
"email":"hub@sarehub.com"
},
"params": {
"to": "hub@sarehub.com",
"from": "test@sarehub.com",
"subject": "test",
"body": {
"html": "test",
"txt": "test"
}
}
},
{
"type": "message",
"user": {
"email":"hub+test@sarehub.com"
},
"params": {
"to": "hub+test@sarehub.com",
"from": "test+test@sarehub.com",
"subject": "test2",
"body": {
"html": "test2",
"txt": "test2"
}
}
}
]
}
Odpowiedź w przypadku błędu
{
"state": "error",
"message": "Treść błędu"
}