Przykłady użycia
Dostęp do serwisu za pośrednictwem REST API może być trudny dla osób, które nie miały z tych wcześniej styczności. Z tego powodu, poniżej zamieszczone zostały podstawowe przykłady wykorzystania API w celu pobrania udostępnionych danych. Poniższy opis pokrywa jedynie niewielki fragment funkcjonalności serwisu. Jeżeli interesuje Cię pełna dokumentacja techniczna, kliknij tutaj. Interfejs graficzny dokumentacji pozwala na opytywanie API bez potrzeby programowania lub ręcznego wykonywania zapytań do API serwisu.
1. Rejestracja i logowanie
1.1. Rejestracja nowego konta
Pierwszym krokiem, który powinniśmy zrobić jest stworzenie konta i zalogowanie się. Dostępne są dwa sposoby rejestracji:
- Rejestracja przy pomocy graficznego interfejsu serwisu. Naciśnij przycisk
Zarejestruj sięw ekranie głównym (lub kliknij: tutaj). - Rejestracja przy pomocy REST API serwisu (zobacz endpoint
/api/v1/users/register/w dokumentacji API).
1.2. Logowanie w serwisie
Logowanie umożliwia dostęp do danych przy pomocy serwisu. W celu uzyskania dostępnu do API wymagane jest uzyskanie odpowiednich tokenów autoryzacyjnych. Sposób uzyskania tokenów został opisany w kolejnej sekcji tego dokumentu.
W celu zalogowania stworzonego wcześniej konta naciśnij przycisk Zaloguj się w ekranie głównym (lub kliknij: tutaj).
2. Autoryzacja
2.1. Uzyskanie tokenów
Dostęp do api autoryzowany jest przy pomocy standardu JWT (JSON Web Token, zob: https://en.wikipedia.org/wiki/JSON_Web_Token). Podejście to zakłada użycie dwóch typów tokenów:
- Token
access- używany w celu autoryzacji do API, - Token
refresh- używany w celu odświeżenia tokenuaccess.
- Token
accessaktywny jest 60 minut, - Token
refreshaktywny jest 1 dzień.
Zaczymany od wykonania zapytania typu POST do endpointu /api/v1/token/. Uzyskanie tokenów przypomina proces logowania. W treści zapytania przesyłamy login i hasło użytkownika.
curl 'http://fajne-dane.herokuapp.com/api/v1/token/' \
-H 'Content-Type: application/json' \
--data-raw '{"email":"EMAIL UŻYTKOWNIKA","password":"HASŁO"}'
W odpowiedzi od systemu otrzymujemy object JSON zawierający dwa tokeny: access oraz refresh:
{
"refresh": "4ZDcxNThjM2Q4YSIsInVzZXJfaWQiOjF9.AqXKTaB63CH6DCMI6Qqf90LnKKjyT6Vi8vyVWbIiWBc[...]",
"access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxN[...]"
}
2.2. Odświeżenie tokenu access
Zaczymany od wykonania zapytania typu POST do endpointu /api/v1/token/refresh.
W treści zapytania przesyłamy jedynie nasz aktywny refresh token.
Jeżeli używany token wygasł (minęło ponad 24 godziny), to wymagane jest ponowne użycie endpointu /api/v1/token/ w celu uzyskania nowej pary tokenów.
curl 'http://fajne-dane.herokuapp.com/api/v1/token/refresh/' \
-H 'Content-Type: application/json' \
--data-raw '{"refresh":"4ZDcxNThjM2Q4YSIsInVzZXJfaWQiOjF9.AqXKTaB63CH6DCMI6Qqf90LnKKjyT6Vi8vyVWbIiWBc[...]"}'
W odpowiedzi od systemu otrzymujemy object JSON zawierający dwa tokeny: access oraz refresh:
{
"access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxN[...]"
}
3. Zbiory danych
3.1. Dostęp do zbiorów danych
Wszystkie zbiory danych dostępne są w dwóch formach:
- Dane surowe, w których oprócz finalnych oznaczeń dokumentu dostępne są również odrzucone odpowiedzi.
- Dane zaagregowane, które mają postać prostych do pobrania plików CSV i zawierają jedynie zaakceptowane oznaczenia dokumentów.
Innym sposobem jest dostęp do plików przy pomocy API.
Aby pobrać listę wszystkich dostępnych zbiorów danych wystarczy użyć endpointu /api/v1/reports/sources/.
Dostęp do API wymaga przekazania tokenu autoryzacyjnego access w nagłówku zapytania:
curl 'http://fajne-dane.herokuapp.com/api/v1/reports/sources/' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiw[...]' \
[
{
"id": 1,
"campaign_name": "NAZWA ZBIORU DANYCH",
"file_url": "LINK DO PLIKU"
},
...
]