Publikowanie przez HTTP
Najprostszy sposób publikowania wiadomości to wykorzystanie żądań HTTP POST lub PUT.
Podstawowe publikowanie
Żądanie POST
curl -d "Twoja wiadomość tutaj" \
-H "Authorization: Bearer YOUR_TOKEN" \
https://app.notifer.io/twoj-temat
Żądanie PUT
echo "Twoja wiadomość" | curl -T - \
-H "Authorization: Bearer YOUR_TOKEN" \
https://app.notifer.io/twoj-temat
Obie metody działają identycznie - użyj tej, która jest wygodniejsza.
Wszystkie poniższe przykłady zakładają skonfigurowane uwierzytelnianie. Szczegóły w sekcji Uwierzytelnianie.
Parametry wiadomości
Dodaj szczegóły do swoich wiadomości używając nagłówków HTTP:
Tytuł
curl -d "Wdrożenie zakończone pomyślnie" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Title: Wdrożenie produkcyjne" \
https://app.notifer.io/deployments
Priorytet
Ustaw priorytet od 1 (krytyczny) do 5 (informacyjny) za pomocą nagłówka X-Priority. Szczegóły w Priorytet.
curl -d "Serwer nie działa!" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Priority: 1" \
https://app.notifer.io/alerts
Tagi
Dodaj tagi oddzielone przecinkami za pomocą nagłówka X-Tags. Szczegóły w Tagi.
curl -d "Utracono połączenie z bazą danych" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Tags: database,error,production" \
https://app.notifer.io/alerts
Połączone parametry
curl -d "Użycie CPU na poziomie 95%" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Title: Alert serwera" \
-H "X-Priority: 2" \
-H "X-Tags: server,cpu,warning" \
https://app.notifer.io/monitoring
Uwierzytelnianie
Wszystkie publikacje wymagają uwierzytelniania - nawet do publicznych tematów. Użyj jednej z trzech metod: tokeny JWT, klucze API lub tokeny dostępu do tematów.
# Token JWT (uwierzytelnianie użytkownika)
curl -d "Twoja wiadomość" \
-H "Authorization: Bearer eyJhbGciOiJIUz..." \
https://app.notifer.io/twoj-temat
# Klucz API (uwierzytelnianie skryptów)
curl -d "Twoja wiadomość" \
-H "X-API-Key: noti_your_key_here" \
https://app.notifer.io/twoj-temat
# Token dostępu do tematu (uwierzytelnianie z zakresem tematu)
curl -d "Twoja wiadomość" \
-H "X-Topic-Token: tk_your_token_here" \
https://app.notifer.io/twoj-temat
Pełny opis wszystkich metod uwierzytelniania (tokeny JWT, klucze API, tokeny dostępu do tematów), porównanie oraz przykłady kodu znajdziesz w Uwierzytelnianie.
Wszystkie tematy muszą być utworzone przez panel, API lub CLI przed publikowaniem do nich. Publikowanie do nieistniejącego tematu zwraca błąd 404.
- Publiczne tematy: Każdy może czytać/subskrybować, ale publikowanie nadal wymaga uwierzytelniania
- Prywatne tematy: Zarówno odczyt jak i publikowanie wymaga uwierzytelniania
Formatowanie Markdown
Wiadomości obsługują Markdown:
curl -d "**Pogrubienie**, *kursywa*, \`kod\`, i [linki](https://example.com)" \
-H "Authorization: Bearer YOUR_TOKEN" \
https://app.notifer.io/formatted-messages
Obsługiwany Markdown:
**bold**→ bold*italic*→ italic`code`→code[link](url)→ link# Heading→ Heading- List item→ List item> Quote→ Quote```code block```→ Code block
Format odpowiedzi
Odpowiedź sukcesu
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"topic": "your-topic",
"message": "Twoja wiadomość tutaj",
"title": "Opcjonalny tytuł",
"priority": 3,
"tags": ["tag1", "tag2"],
"timestamp": "2025-11-02T10:30:00Z"
}
Kod statusu: 200 OK
Odpowiedź błędu
{
"detail": "Topic not found or access denied"
}
Popularne kody statusu:
400 Bad Request- Nieprawidłowe parametry401 Unauthorized- Brak lub nieprawidłowe uwierzytelnienie403 Forbidden- Brak uprawnień do publikowania404 Not Found- Temat nie istnieje (dla prywatnych tematów)429 Too Many Requests- Przekroczono limit żądań
Przykłady z rzeczywistości
Monitorowanie serwera
#!/bin/bash
# Sprawdź miejsce na dysku i powiadom, jeśli > 80%
USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $USAGE -gt 80 ]; then
curl -d "Użycie dysku na poziomie ${USAGE}%" \
-H "X-Priority: 2" \
-H "X-Tags: server,disk,warning" \
https://app.notifer.io/server-alerts
fi
Pipeline CI/CD
# Przykład GitHub Actions
- name: Notify deployment
run: |
curl -d "Wdrożenie do produkcji zakończone" \
-H "X-Title: Deploy Success" \
-H "X-Tags: ci,deploy,production" \
-H "X-Topic-Token: ${{ secrets.NOTIFER_TOPIC_TOKEN }}" \
https://app.notifer.io/ci-notifications
Kopia zapasowa bazy danych
#!/bin/bash
# Wykonaj kopię zapasową bazy danych i powiadom
if pg_dump mydb > backup.sql; then
curl -d "Kopia zapasowa bazy danych zakończona pomyślnie" \
-H "X-Title: Backup Success" \
-H "X-Priority: 3" \
-H "X-Tags: backup,database,success" \
https://app.notifer.io/backups
else
curl -d "Kopia zapasowa bazy danych NIE POWIODŁA SIĘ!" \
-H "X-Title: Backup Failed" \
-H "X-Priority: 1" \
-H "X-Tags: backup,database,error" \
https://app.notifer.io/backups
fi
Monitorowanie logów
# Powiadom o błędzie w logach
tail -f /var/log/app.log | grep -i error | while read line; do
curl -d "$line" \
-H "X-Title: Application Error" \
-H "X-Priority: 2" \
-H "X-Tags: logs,error" \
https://app.notifer.io/app-errors
done
Sprawdzanie stanu zdrowia
#!/bin/bash
# Sprawdź usługę i powiadom, jeśli nie działa
if ! curl -sf https://myapp.com/health > /dev/null; then
curl -d "Sprawdzanie stanu zdrowia usługi nie powiodło się!" \
-H "X-Priority: 1" \
-H "X-Tags: health,critical" \
-H "X-Topic-Token: tk_your_token_here" \
https://app.notifer.io/alerts
fi
Opcje zaawansowane
Ograniczanie liczby żądań
Przestrzegaj limitów żądań sprawdzając nagłówki odpowiedzi:
curl -i -d "Wiadomość" https://app.notifer.io/topic
Nagłówki odpowiedzi:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 9
X-RateLimit-Reset: 1699000000
Logika ponawiania
Zaimplementuj wykładniczy backoff dla nieudanych żądań:
#!/bin/bash
MAX_RETRIES=3
RETRY_DELAY=1
for i in $(seq 1 $MAX_RETRIES); do
if curl -d "Wiadomość" https://app.notifer.io/topic; then
exit 0
fi
echo "Próba $i nie powiodła się, czekam ${RETRY_DELAY}s"
sleep $RETRY_DELAY
RETRY_DELAY=$((RETRY_DELAY * 2))
done
echo "Wszystkie próby nie powiodły się"
exit 1
Następne kroki
- Publikowanie Python - Publikuj z Python (requests)
- Publikowanie JavaScript - Publikuj z Node.js lub przeglądarki
- Narzędzie CLI - Interfejs wiersza poleceń
- Klucze API - Zarządzaj uwierzytelnianiem