API, znane jest jako interfejs przeznaczony dla programistów, tworzących aplikacje internetowe, który określa w jaki sposób poszczególne elementy, bądź warstwy oprogramowania, powinny się ze sobą komunikować. Jednym ze stylów architektonicznych budowania API jest REST (Representational State Transfer), który został zaprojektowany z myślą o wydajnej wymianie danych na drodze klient – serwer. Restowe API wykorzystuje typowe metody HTTP, takie jak POST, GET, PUT, DELETE.
Jednym z narzędzi umożliwiających przesyłanie zapytań (request) i odbieranie odpowiedzi (response) od serwisów internetowych jest bohater niniejszego opracowania, a więc wspomniany – Postman.
Postman, to program, który wyróżnia się intuicyjnym interfejsem oraz prostą obsługą oraz oferuje wiele przydatnych funkcjonalności.
W menu bocznym aplikacji możemy zobaczyć historię ostatnio wykonanych requestów, stworzyć nowe API lub kolekcję. Kolekcje dają możliwość przechowywania wykonanych żądań, zatem w dowolnej chwili będziemy mogli je ponownie wykorzystać. Same kolekcje możemy również wyeksportować do repozytorium oraz współdzielić.
Sercem narzędzia Postman jest Workspace, czyli miejsce pozwalające, zarówno na prace indywidulane, jak i na organizację pracy oraz współpracę z resztą zespołu. Dzięki współpracy w przestrzeni roboczej, wszystkie edycje są synchronizowane w czasie rzeczywistym. Workspace pozwala także na grupowanie tworzonych projektów oraz – co najważniejsze – budowanie i wysyłanie żądań. Niezależnie od tego, czy budujemy i testujemy swoje własne API, czy też integrujemy się z innym, możemy wypróbować nasze żądania w Postmanie. Po wysłaniu żądania, program wyświetli odpowiedź otrzymaną z serwera API w szybki i czytelny sposób.
Jak już wspomniałam, Postman daje możliwość wysyłania różnego rodzaju żądań (requests). Do tych najbardziej popularnych z pewnością należą:
Od czego zacząć? Na początek warto zastanowić się nad dostępem do API vCloud Director. Otóż, większość API stosuje metody autoryzacji w celu zapewnienia, że klient żąda bezpiecznego dostępu do danych. Jeśli budujemy własne API, możemy wybrać jeden z wielu modeli autoryzacji. W przypadku integracji z zewnętrznym API, autoryzacja określona jest przez jego dostawcę.
W przypadku portalu vCloud Director posłużymy się autoryzacją typu Bearer Token, co pozwoli nam na uwierzytelnianie za pomocą klucza dostępu. Praktyczność i wygodę takiej autoryzacji wyjaśnimy nieco później. Teraz skupmy się na kolejnych krokach, jakie musimy wykonać.
Po utworzeniu środowiska – należy wybrać je z rozwijanej listy w obszarze roboczym (prawy góry rób obszaru roboczego). Jak na rysunku:
var bearer = postman.getResponseHeader(“X-VMWARE-VCLOUD-ACCESS-TOKEN”)
pm.environment.set(“X-VMWARE-VCLOUD-ACCESS-TOKEN”,bearer)
4. W sekcji Authorization wybieramy typ autoryzacji – Basic Auth i wprowadzamy dane logowania do naszego panelu vCloud Director.
5. Po wysłaniu tak przygotowanego żądania powinniśmy otrzymać odpowiedź ze statusem 200. Żądanie możemy zapisać w kolekcji, by móc je jeszcze w przyszłości wykorzystać.
Na tym etapie warto jeszcze zauważyć, że w sekcji Headers odpowiedzi znajduje się X-VMWARE-VCLOUD-ACCESS-TOKEN. Nie będziemy go używać do kolejnych wywołań API. Został on odebrany i zapisany do zmiennej środowiskowej przez kod, jakiego użyliśmy w kroku numer 3.
6. Stwórzmy teraz nowe zapytanie API. Przykładowo, wyślemy żądanie GET na adres: https://{{{host}}/api/org, z zachowaniem tego samego nagłówka Accept. Przed wysłaniem żądania przechodzimy jeszcze do zakładki Authorization i zmieniamy typ autoryzacji na Bearer Token, w polu token podajemy otrzymany uprzednio: {X-VMWARE-VCLOUD-ACCESS-TOKEN}}
7. Kliknij przycisk Send. W odpowiedzi powinniśmy otrzymać status 200 OK oraz listę wszystkich Organizacji, do których jesteśmy upoważnieni. Lista ta znajduje się w odpowiedzi, w sekcji Body.
Dzięki tak stworzonej metodzie autoryzacji możemy teraz dodawać kolejne żądania do naszej kolekcji bez konieczności uwierzytelniania każdego żądania w nagłówku, a poprzez ustawienie odpowiedniego tokenu w sekcji autoryzacji. Zatem, jedyne co należy zrobić, to zalogować się za pomocą połączenia POST. Po poprawnym uwierzytelnieniu będziemy mogli szybko i łatwo uruchamiać wszelkie żądania znajdujące się w kolekcji.
Posiadając już kolekcję i skonfigurowaną metodę uwierzytelniania, postaramy się zmienić motyw portalu vCloud Director, który domyślnie prezentuje się następująco:
Wprowadzenie powyższych zmian nie jest zbyt skomplikowane i tylko nieznacznie zmienia graficzny interfejs użytkownika, dlatego postaramy się bardziej zagłębić w ten temat i stworzymy własny motyw.
Budowanie indywidualnego motywu będzie opierać się o generator motywów VCD UI Theme Generator. Dzięki niemu będziemy mogli stworzyć odpowiedni plik CSS, definiujący nasz nowy motyw. Nie będę omawiać procedury instalacji i posługiwania się wspomnianym generatorem. Wszelkie informacje na jego temat znaleźć można tutaj: https://github.com/vmware-samples/vcd-ext-samples/tree/theme-generator/10.1
Po wygenerowaniu motywu za pomocą generatora musimy wysłać odpowiednie żądania do API vCloud Director w celu umieszczenia nowego motywu.
{
"name": "Test", // nazwa motywu
"themeType": "Custom" //typ motywu
}
2. Tworzenie zawartości motywu – kolejny krok to tworzenie zawartości dla szablonu, jaki stworzyliśmy w kroku pierwszym. Operację tą przeprowadzamy za pomocą żądania POST.
{
"fileName": "testtheme.css", //nazwa stworzonego pliku css
"size": 447207 //rozmiar pliku css
}
W nagłówku zwrotnym tego żądania pojawi się link, który w następnych krokach zostanie użyty do umieszczenia pliku CSS. Przykładowa postać linku: <https://{vCD_FQDN}/transfer//testtheme.css>;rel=”upload:default”;type=”application/octet-stream”
3. Wysyłanie pliku CSS – na tym etapie następuje wysłanie wygenerowanego przez VCD UI Theme Generator pliku CSS. Aby przesłać własny plik CSS należy wystosować do API żądanie PUT.
W nagłówku należy zdefiniować Content-Type i Content-Length (należy podać taką samą wartość, jaką zdefiniowaliśmy przy tworzeniu contentu. Jest to po prostu rozmiar pliku CSS podawany w bajtach). W body tego żądania zamieszczamy plik CSS.
4. Ostatnim krokiem jest aktywacja własnego motywu. By to zrobić należy wysłać żądanie PUT.
{
"portalName": "My New Theme",
"portalColor": "#7e1414",
"selectedTheme": {
"themeType": "Custom",
"name": "Test"
}
}
Wysyłając jakiekolwiek żądania warto również zwracać uwagę na statusy otrzymywanych odpowiedzi. Są to numeryczne, trzycyfrowe kody, które są dołączane do odpowiedzi i sygnalizują status odpowiedzi. Najczęstszymi statusami HTTP, z którymi możemy się spotkać są:
Postman wydaje się być jednym z ciekawszych narzędzi do tworzenia i testowania API. Dzięki możliwości tworzenia kolekcji możemy w łatwy sposób przechowywać wszystkie żądania w jednym miejscu i korzystać z nich bez ograniczeń. Intuicyjny interfejs pozwala na sprawne odczytywanie i przeszukiwanie odpowiedzi (response) przetwarzanych żądań. Dodatkową opcją jest możliwość udostępniania swoich kolekcji innym użytkownikom, czy generowania dokumentacji w HTML. W aktualnej wersji programu możliwe jest także „mockowanie” serwerów oraz testowanie API, co czyni Postmana bardzo funkcjonalnym narzędziem do pracy przy tego typu projektach.