RESTFul API

User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Jest w trakcie opracowywania. Generalnie jakby ktoś był chętny do opisania endpointów to by taka pomoc się przydała. Wdrożyliśmy już http://apidocjs.com/ i API się mocno stabilizuje w najbliższym wydaniu.
You do not have the required permissions to view the files attached to this post.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

maghost
Posts: 99
Joined: Sun Mar 27, 2016 12:30 am

Post

Przemek napisał odnośnie clouda w wersji 2.2:
pzygmunt wrote: Fri Apr 13, 2018 6:03 pm - Ujednolicenie API
Więc jak to jest? API będzie wersjonowane? W podanym samplu doca zwraca trochę obszerniejszą listę niż normalnie o jaką się pytam przez /api ;)

W jaki sposób mogę przetestować wersję z podanego przykładu i czy ona obecnie istnieje?
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Zdawkowo napisałem tu że wersję API z którego korzystasz należy wyspecyfikować headerem, np:

Code: Select all

X-Accept-Version: 2.2.0
Ze względów kompatybilności, w wydaniu 2.2.0 jeśli nie podano nagłówka, domyślnie aktywowana jest "stara" wersja API, czyli 2.0.0. Takie zachowanie prawdopodobnie zostanie nadal w wersji 2.3.0 a w wersji następnej (2.4.0 lub nawet 3.0.0 ze względu na naruszanie kompatybilności) jeśli nagłówka z wersją się nie poda, wlączane będzie API najnowsze.

Póki co nieoficjalnie ustaliliśmy, że każdy Cloud wspiera 3 wersje API do tyłu, czyli Cloud 2.2.0 ma API 2.0, 2.1 i 2.2, Cloud 2.3.0 ma API 2.1, 2.2, 2.3 itd. Natomiast pewnie przy wydaniu opublikujemy jakieś oficjalniejsze niż ten post info w tej sprawie.
maghost
Posts: 99
Joined: Sun Mar 27, 2016 12:30 am

Post

Super, tego mi brakowało! Dzięki fracz
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Na wiki wrzucam opis struktur które są zbyt obszerne żeby je wygodnie opisać w kodzie. Będzie to podlinkowane w dokumentacji API:

Opis parametrów kanałów
co gdzie jest przechowywane
i w jakim formacie: https://github.com/SUPLA/supla-cloud/wi ... parameters

Format stanu kanału: https://github.com/SUPLA/supla-cloud/wi ... ons-states
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Pełna dokumentacja API dostępna jest pod adresem https://app.swaggerhub.com/apis/supla/s ... -api/2.2.0

Będzie też dostępna w tej formie w każdej instancji clouda, z możliwością testowania poszczególnych endpointów na swoim koncie.

Z tej strony można pobrać gotowych klientów API do większości języków programowania, aczkolwiek jeszcze tego nie oswoiłem.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Api można też wersjonować dodając wersję w URLu, np:

Code: Select all

/api/v2.2.0/channels
Nowy klient do PHP nie będzie kompatybilny wstecz. Jego dokumentację można podglądnąć tu: https://github.com/SUPLA/api-client-php/tree/swagger
matifly
Posts: 1
Joined: Fri Jun 29, 2018 1:13 pm

Post

Witam,
Czy w wersji 2.1 api jest możliwy odczyt stanów (parametr 'on' ) wszystkich kanałów (łączników) za pomocą jednego zapytania ?
W chwili obecnej jedyną możliwością odczytu stanu jaką znalazłem jest użycie oddzielnych zapytań dla każdego kanału :

Code: Select all

 {{domain}}/channels/{{id}} 
Wysyłając zapytanie pod :

Code: Select all

 {{domain}}/channels 
w odpowiedzi pożądanych parametrów znajduję.
Z góry dziękuję za odpowiedź.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Nie jest możliwe pobranie stanów wielu kanałów jednym zapytaniem. W dokumentacji v2.2 https://cloud.supla.org/api/docs.html już jasno to określono, nie pozwalając na include=state dla endpointa z listą.

Pytanie czy tak musi być? @pzygmunt czy odpytanie o stan dla listy kanałów jest na tyle kosztowne by wymagać osobnych requestow do API?

Return to “CLOUD”