Prvi koraci
U ovom odeljku opisan je veb API (Web API) platforme, realizovan kao paket podataka REST API za razmenu u formatu json.
Opšte napomene
- Format prenosa podataka Veb API je realizovan kao paket podataka REST API za razmenu u formatu json.
- Postupak autentifikacije Autentifikacija se zasniva na dinamički ažuriranom tokenu, što garantuje bezbednost primljenih podataka i sprečava curenje tokena.
- Format promenljivih sa datumom i vremenom
Veb API vraća podatke tipa datum i vreme kodirane kao UNIX vreme ili POSIX vreme, u formatu
UTC: 1613376963. Pri pretvaranju Unix vremena u čitljiv datum morate da navedete vremensku zonu. - Straničenje
Veb API podržava straničenje radi preuzimanja podataka stranicu po stranicu. Broj stranice prosleđuje se parametrom:
page="page number" (page=1). Broj zapisa koje upit vraća može se zadati parametrom per_page, ali ne više od 1.000 zapisa.
Osnovni URL
Svi primeri na ovim stranicama koriste sledeći osnovni URL:
https://api.vadsro.eu/api/v1Autentifikacija
Autentifikacija se zasniva na dinamički ažuriranom tokenu. U praksi to izgleda ovako:
- Početna autentifikacija obavlja se pomoću imejl adrese i lozinke koje postoje u sistemu, a kao odgovor stižu dinamički token i povezani atributi.
- Formira se ciljni zahtev za preuzimanje podataka, a u zaglavlja HTTP zahteva dodaje se token dobijen u prethodnom koraku.
- Zahtev se šalje serveru. Ako je zahtev ispravno formiran, server vraća podatke u telu odgovora i novi token u zaglavljima odgovora, a stari token postaje nevažeći. Sa novim tokenom možete da ponovite prethodni korak i tako dalje.
- Po završetku rada poslednji token može se poništiti odjavom (SignOut) pre isteka roka važenja.
Za početnu autentifikaciju koriste se imejl adresa i lozinka postojećeg korisnika. U tu svrhu pošaljite POST zahtev na adresu:
https://api.vadsro.eu/api/v1/auth/sign_inPrimer zahteva u formatu Curl:
curl -i --header "Content-Type: application/json" \
--request POST \
--data '{"email":"api-user@example.com","password":"Str0ngPas$"}'\
https://api.vadsro.eu/api/v1/auth/sign_inKao odgovor stiže sledeća poruka:
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: application/json; charset=utf-8
access-token: EXAMPLE-ACCESS-TOKEN-1
token-type: Bearer
client: EXAMPLE-CLIENT-ID
expiry: 1615227012
uid: api-user@example.com
ETag: W/"5b9bcc76f7223b72b79d9f2d31ff0fd5"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: c18e06b4-e5bd-40b5-875d-7ac958e2fbb5
X-Runtime: 0.391069
Transfer-Encoding: chunked
{"data":{"id":6,"email":"api-user@example.com","provider":"email","uid":"api-user@example.com","name":"API user"}}U ovom odgovoru zanimaju nas sledeća zaglavlja:
| Zaglavlje | Opis |
|---|---|
access_token | Vrednost ovog zaglavlja koristi se kao lozinka za svaki zahtev. Vrednost se menja sa svakim zahtevom. |
client | Ovo zaglavlje je jedinstveno za trenutnu vezu. Omogućava više aktivnih sesija istovremeno. |
expiry | Vreme kada ovaj token ističe. Podrazumevana vrednost je 2 nedelje od prijema tokena. Ili ranije, posle odjave (SignOut). Nije potrebno za sledeći zahtev. |
uid | Jedinstvena vrednost koja identifikuje korisnika. U našem slučaju to je imejl adresa. |
token-type | Tip tokena koji se koristi. |
Primer zahteva sa tokenom iz prethodnog odgovora:
curl -i --header "access-token: EXAMPLE-ACCESS-TOKEN-1" \
--header "token-type: Bearer" \
--header "client: EXAMPLE-CLIENT-ID" \
--header "uid: api-user@example.com" \
--request GET \
--header "Content-Type: application/json" \
--data '{"page":"2"}' \
https://api.vadsro.eu/api/v1/stationsKao odgovor stiže sledeća poruka:
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: application/json; charset=utf-8
access-token: EXAMPLE-ACCESS-TOKEN-2
token-type: Bearer
client: EXAMPLE-CLIENT-ID
expiry: 1615311367
uid: api-user@example.com
ETag: W/"ba0df406b647bd92f0bf3a18916714c1"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 35a26441-ae78-48fa-8b2e-e92d2605133b
X-Runtime: 0.167748
Transfer-Encoding: chunked
{"data": [
{"id":1,"name":"860000000000001","equipment_brand_name":"Corrector BK","phone":"","equipment_id":1},...
],
"total_pages":7,
"current_page":2
}Da biste završili rad, možete da se odjavite (SignOut) ili da sačuvate potrebna zaglavlja iz poslednjeg zahteva i, ako rok važenja tokena nije istekao, da ih upotrebite sledeći put.
Završetak sesije:
curl -i --header "access-token: EXAMPLE-ACCESS-TOKEN-2" \
--header "token-type: Bearer" \
--header "client: EXAMPLE-CLIENT-ID" \
--header "uid: api-user@example.com" \
--request DELETE \
https://api.vadsro.eu/api/v1/auth/sign_out
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Content-Type: application/json; charset=utf-8
ETag: W/"c955e57777ec0d73639dca6748560d00"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: b4b69ac3-5cba-4e6e-b6a0-f6577298c166
X-Runtime: 0.141467
Transfer-Encoding: chunked
{"success":true}Sledeći koraci
Sada kada znate kako se obavlja autentifikacija, upoznajte se sa osnovnim resursima interfejsa API:
Preuzmite hijerarhiju snabdevača i listu potrošača koje opslužuju.
Preuzmite listu mernih mesta i njihove fizičke karakteristike.
Preuzmite očitavanja kanala po tipu arhive i vremenskom intervalu.
Pregledajte arhive događaja uređaja i šifarnik kodova poruka.
Da li vam je ova stranica bila korisna?
Hvala vam na povratnoj informaciji!