arrow_back

Wprowadzenie do interfejsów API w Google

Wprowadzenie do interfejsów API w Google

1 godz. 1 punkt

GSP294

Moduły Google Cloud do samodzielnego ukończenia

Podsumowanie

Interfejsy API (interfejsy programowania aplikacji) to programy, które dają programistom dostęp do zasobów obliczeniowych oraz danych. Wiele różnego rodzaju firm oferuje ogólnodostępne interfejsy API, by programiści mogli integrować specjalistyczne narzędzia, usługi czy biblioteki z własnymi aplikacjami i bazą kodu.

W tym module zapoznasz się z informacjami o architekturze i podstawowych funkcjach interfejsów API. Wiedza ta zostanie uzupełniona ćwiczeniami praktycznymi, w ramach których skonfigurujesz i uruchomisz metody interfejsu Cloud Storage API w Google Cloud Shell. Dzięki temu modułowi zrozumiesz kluczowe zasady komunikacji, architektury i uwierzytelniania interfejsów API. Zdobędziesz też praktyczne doświadczenie dotyczące interfejsów API, które przyda się w przyszłych modułach czy projektach.

Cele

W tym module zdobędziesz wiedzę na temat:

  • interfejsów API Google,
  • architektury interfejsów API,
  • protokołu i metod HTTP,
  • punktów końcowych,
  • stylu architektury REST (Representational State Transfer) i interfejsów API typu REST,
  • formatu JSON (JavaScript Object Notation),
  • usług uwierzytelniania interfejsu API.

Wymagania wstępne

To jest moduł dla użytkowników początkujących. Zakładamy więc, że nie wiesz nic lub wiesz niewiele o interfejsach API i nie masz żadnego lub prawie żadnego doświadczenia w korzystaniu z interfejsów API Google. Znajomość środowisk powłoki i narzędzi interfejsu wiersza polecenia może być pomocna, ale nie jest konieczna. Ponieważ zalecane jest zaznajomienie się z Google Cloud Console i Cloud Storage, przed rozpoczęciem niniejszego modułu przejdź te wymienione niżej:

Gdy zechcesz rozpocząć, przewiń stronę w dół i wykonaj opisane niżej kroki, aby skonfigurować środowisko modułu.

Konfiguracja i wymagania

Zanim klikniesz przycisk Start Lab (Rozpocznij moduł)

Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Po kliknięciu Start Lab (Rozpocznij moduł) na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.

W tym praktycznym module Qwiklabs możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.

Wymagania

Do ukończenia modułu potrzebne będą:

  • dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome),
  • czas wymagany do ukończenia modułu.

Uwaga: jeśli masz już osobiste konto lub projekt w Google Cloud, nie używaj go w tym module.

Uwaga: jeśli używasz Pixelbooka, uruchom ten moduł w oknie incognito.

Rozpoczynanie modułu i logowanie się w konsoli Google Cloud

  1. Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się wyskakujące okienko, w którym możesz wybrać formę płatności. Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:

    • przyciskiem Otwórz konsolę Google;
    • czasem, który Ci pozostał;
    • tymczasowymi danymi logowania, których musisz użyć w tym module;
    • innymi informacjami potrzebnymi do ukończenia modułu.
  2. Kliknij Otwórz konsolę Google. Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.

    Wskazówka: otwórz karty obok siebie w osobnych oknach.

    Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta.
  3. W razie potrzeby skopiuj nazwę użytkownika z panelu Szczegóły modułu i wklej ją w oknie logowania. Kliknij Dalej.

  4. Skopiuj hasło z panelu Szczegóły modułu i wklej je w oknie powitania. Kliknij Dalej.

    Ważne: musisz użyć danych logowania z panelu po lewej stronie, a nie danych logowania Google Cloud Skills Boost. Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami.
  5. Na kolejnych stronach wykonaj następujące czynności:

    • Zaakceptuj Warunki korzystania z usługi.
    • Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
    • Nie rejestruj się w bezpłatnych wersjach próbnych.

Poczekaj, aż na karcie otworzy się konsola Google Cloud.

Uwaga: aby wyświetlić menu z listą produktów i usług Google Cloud Console, w lewym górnym rogu kliknij menu nawigacyjne. Ikona menu nawigacyjnego

Interfejsy API – co i dlaczego

Jak już wspomnieliśmy, interfejs API (interfejs programowania aplikacji) to program, który daje programistom dostęp do zasobów obliczeniowych oraz danych. Interfejsy API są zgodne z określonymi zasadami i metodami, aby jasno przekazywać żądania i odpowiedzi.

Dzięki dostępowi do danych i zasobów obliczeniowych wydajność pracy programisty znacząco wzrasta. Użycie interfejsu API jest zdecydowanie łatwiejsze niż tworzenie każdego programu, metody czy zbioru danych od zera. Interfejsy API są tworzone w myśl zasady abstrakcji – nie trzeba rozumieć wewnętrznych procesów czy zawiłości interfejsu API, by używać go we własnym środowisku.

Interfejsy API powstają z myślą o programistach i najczęściej nie obejmują GUI (graficznego interfejsu użytkownika). Od tej reguły istnieją jednak wyjątki. Google wprowadziło nowe narzędzie o nazwie APIs Explorer, które umożliwia poznawanie różnych interfejsów API Google w sposób interaktywny (jeśli chcesz dowiedzieć się więcej, po zakończeniu tego modułu zajrzyj do APIs Explorer: Qwik Start).

Cloud APIs

Google oferuje interfejsy API, które znajdują zastosowanie w różnych dziedzinach i sektorach. Interfejsy API często wykorzystywane są podczas tworzenia stron internetowych lub systemów uczących się, a także badania danych i pracy związanej z administrowaniem systemami. Na tym jednak lista się nie kończy. Jeśli na przykład przejrzysz stronę AnyAPI, zobaczysz, jak ogromny jest wybór interfejsów.

Kiedy Qwiklabs udostępnia nowy projekt Google Cloud na potrzeby modułu, włącza też większość interfejsów API – dzięki temu od razu można przystąpić do zadań. Jeśli tworzysz projekty niezależnie od Qwiklabs, musisz włączyć wybrane przez siebie interfejsy API samodzielnie.

Gdy już zostaniesz zaawansowanym użytkownikiem Google Cloud, w swojej pracy zaczniesz korzystać z coraz większej liczby interfejsów API. Doświadczeni użytkownicy będą integrować i używać interfejsów Cloud APIs niemal wyłącznie w środowiskach lokalnych, rzadko używając Cloud Console do uruchamiania narzędzi i usług. Dostępne są dziesiątki modułów oferujących ćwiczenia z zakresu różnych – i różnojęzycznych – interfejsów API Google. Oto 2 przykłady:

Teraz przejrzysz zasoby biblioteki interfejsów API, aby dowiedzieć się, jakie interfejsy API Google są dostępne.

Biblioteka interfejsów API

Otwórz menu nawigacyjne i wybierz Interfejsy API i usługi > Biblioteka:

aaa6309ec4a35ccd.png

Biblioteka interfejsów API daje szybki dostęp do ponad 200 interfejsów API Google, a także do ich dokumentacji i opcji związanych z konfiguracją. Choć biblioteka znajduje się w Cloud Console, warto podkreślić, że daje ona dostęp do wszystkich interfejsów API Google – nie tylko tych dotyczących Google Cloud. Fakt ten uwypukla ważną kwestię – interfejsy API są fundamentalne dla wszystkich usług Google, przy czym nie wszystkie interfejsy Cloud APIs należą do kategorii Google Cloud.

Nadszedł czas na kilka praktycznych ćwiczeń związanych z włączaniem interfejsów API w bibliotece interfejsów API. Przyjmijmy, że zajmujesz się programowaniem aplikacji mobilnej klubu fitness i chcesz użyć w niej interfejsu Google Fitness API.

Na pasku wyszukiwania „Wyszukaj interfejsy API i usługi” wpisz Fitness API i naciśnij Enter. Na liście wyników kliknij Fitness API. Następnie kliknij WŁĄCZ. Gdy dwukrotnie klikniesz przycisk Wstecz w oknie przeglądarki i wrócisz na stronę interfejsu Fitness API w bibliotece interfejsów API, zobaczysz, że ten interfejs API jest już włączony:

fitness-api.png

W bibliotece interfejsów API znajdują się linki do tutoriali i dokumentacji, warunki korzystania z usługi oraz interaktywne metody oferowane przez narzędzie APIs Explorer. Aby wyświetlić informacje o wskaźnikach i zużyciu, należy skorzystać z panelu informacyjnego interfejsów API.

Panel informacyjny interfejsów API

Sprawdź interfejs Fitness API w panelu informacyjnym interfejsów API w Cloud Console. Otwórz menu nawigacyjne i wybierz Interfejsy API i usługi > Panel informacyjny:

api-dashboard.gif

panelu informacyjnym interfejsów API znajdują się szczegóły dotyczące konkretnych interfejsów API, w tym poziomy ruchu, odsetki błędów, a nawet mediany czasu oczekiwania – pomaga to szybko rozwiązywać problemy z aplikacjami korzystającymi z usług Google.

Na liście interfejsów API wybierz Fitness API:

fit-api.png

Może być konieczne wyszukanie Fitness API na drugiej stronie, jeśli nie masz go na pierwszej stronie.

Na tej stronie możesz przeglądać limity i prosić o ich zwiększenie, kontrolować dostęp do zasobów i danych oraz przeglądać wskaźniki. Aby zobaczyć, jak działa jedna z tych funkcji, w menu po lewej stronie wybierz Limity.

Rozwiń opcję Żądania. Wyświetli się liczba zapytań, na którą zezwala interfejs API (na dzień, na użytkownika i na sekundę):

api-quota.png

Masz już doświadczenie w udostępnianiu interfejsu API spoza usługi Cloud – reszta praktycznych ćwiczeń dotyczyć będzie interfejsu Google Cloud Storage API. Już za chwilę zapoznasz się z architekturą i podstawowymi funkcjami interfejsów API.

Sprawdź swoją wiedzę

Odpowiedz na poniższe pytania wielokrotnego wyboru, aby utrwalić wiedzę na temat omówionych pojęć.

Architektura interfejsów API

Interfejsy API to zestaw metod, które pozwalają na komunikację między programami. Aby komunikacja ta była efektywna, programy muszą być zgodne z jasnym protokołem zarządzającym transferem i interpretacją danych.

Model klient-serwer

Internet to standardowy kanał komunikacyjny wykorzystywany przez interfejsy API do przesyłania żądań i odpowiedzi między programami. Model klient-serwer to podstawowa architektura wykorzystywana do wymiany informacji przez internetowe interfejsy API.

Klient to urządzenie elektroniczne (np. smartfon, laptop itp.) wysyłające żądanie dotyczące zasobów obliczeniowych lub danych. Żądanie klienta musi zostać sformatowane w przyjętym protokole.

Na serwerze przechowywane są dane lub zasoby obliczeniowe. Jego zadaniem jest interpretacja i spełnienie żądania klienta.

Oto wizualna reprezentacja modelu klient-serwer:

5fe668c7107b4d28.png

Protokół HTTP i metody żądań

Ponieważ interfejsy API używają internetu jako kanału komunikacyjnego, wiele z nich jest zgodnych z protokołem HTTP, który określa zasady i metody wymiany danych między klientami a serwerami w internecie. Protokół HTTP jest wykorzystywany nie tylko przez interfejsy API – to standardowa forma komunikacji w internecie, polegająca na wysyłaniu i otrzymywaniu danych.

Interfejsy API, które korzystają z protokołu HTTP, w celu przesyłania żądań klienta do serwerów używają metod żądań HTTP (nazywanych też „czasownikami HTTP”). Najpopularniejsze metody żądań HTTP to GET, POST, PUTDELETE.

Metoda żądania GET jest używana przez klienta do pobierania danych z serwera. Jeśli żądany zasób znajduje się na serwerze, zostanie odesłany do klienta.

Metoda PUT zastępuje istniejące dane lub tworzy je, jeśli nie istnieją. Jeżeli metoda PUT zostanie użyta wiele razy, nie przyniesie to rezultatów – na serwerze będzie tylko 1 kopia zbioru danych.

Metoda POST jest używana głównie do tworzenia nowych zasobów. Wielokrotne użycie metody POST spowoduje dodanie danych w wielu miejscach na serwerze. Zalecamy używanie metody PUT do aktualizowania zasobów, a metody POST – do tworzenia nowych.

Metoda DELETE usuwa z serwera dane lub zasoby określone przez klienta.

Choć istnieją setki interfejsów API o unikalnych celach i specjalizacjach, należy pamiętać, że wszystkie używają tego samego protokołu i tych samych podstawowych metod do komunikacji klient-serwer.

Sprawdź swoją wiedzę

Odpowiedz na poniższe pytania wielokrotnego wyboru, aby utrwalić wiedzę na temat omówionych pojęć.

Punkty końcowe

Interfejsy API wykorzystują protokół HTTP do interakcji z danymi lub zasobami obliczeniowymi przechowywanymi na serwerze. Metody te są bezużyteczne, jeśli spójny dostęp do określonych zasobów jest niemożliwy. Interfejsy API używają kanałów komunikacji nazywanych punktami końcowymi, by umożliwić klientom bezproblemowy i regularny dostęp do potrzebnych zasobów.

Punkty końcowe to punkty dostępu do danych lub zasobów obliczeniowych przechowywanych na serwerze. Występują w formie HTTP URI. Punkty końcowe dodaje się do podstawowego adresu URL interfejsu API (np. http://example.com), aby utworzyć ścieżkę do określonego zasobu lub kontenera zasobów. Oto kilka przykładów punktów końcowych:

  • http://example.com/lokalizacjasklepow
  • http://example.com/konta
  • http://example.com/pracownicy

Poniższe punkty końcowe również są prawidłowe:

  • http://example.com/lokalizacjasklepow/sanfrancisco
  • http://example.com/lokalizacjasklepow/nowedelhi
  • http://example.com/lokalizacjasklepow/londyn

Do punktów końcowych można dodać ciągi zapytania (np. http://example.com/punktkoncowy/?id=1), aby przekazywać zmienne, które mogą być konieczne do realizacji żądania interfejsu API. Punkty końcowe nazywane są „rzeczownikami” i podlegają działaniu czasowników (metod HTTP), a interfejsy API wykorzystują tę platformę do realizowania żądań.

Dokładniej rzecz ujmując, klient wysyła żądanie składające się z metody HTTP (czasownika) i punktu końcowego (rzeczownika), aby otrzymać określone dane lub wykonać konkretne działanie na serwerze. Warto wiedzieć, że żądania klienta realizuje serwer, tłumacząc i wykonując określoną operację na podstawie dostarczonej metody i punktu końcowego.

Ponieważ najcięższa praca wykonywana jest w backendzie, można powiedzieć, że interfejs API wykorzystujący metody HTTP i punkty końcowe żyje na serwerze, działając jako realizator żądań klienta. Ten model luźno określa interfejsy API typu REST, którym przyjrzymy się bliżej w następnej sekcji. Aby przećwiczyć tworzenie punktów końcowych dla interfejsu API w praktyce, zrealizuj moduł Cloud Endpoints: Qwik Start.

Interfejsy API typu REST

Interfejsy API, które wykorzystują protokół HTTP, metody żądań i punkty końcowe, nazywane są interfejsami API typu REST. REST (Representational State Transfer) to styl architektury, który dobiera standardy komunikacji internetowej. Opis systemu REST-owego stworzony przez Google:

[…] zasoby są przechowywane w magazynie danych – klient wysyła żądanie, aby serwer przystąpił do realizacji konkretnego działania (np. utworzenia, odzyskania, zaktualizowania lub usunięcia zasobu), serwer natomiast wykonuje działanie i wysyła odpowiedź, często w formie reprezentacji określonego zasobu.

Takie skupione na zasobie działanie to kluczowa zasada REST. Wzorcowe interfejsy API REST to:

[…] zbiory adresowanych indywidualnie zasobów […] Zasoby i metody są nazywane rzeczownikami i czasownikami interfejsów API. W protokole HTTP nazwy zasobów naturalnie mapują na adresy URL, a metody naturalnie mapują na metody HTTP […]

Użyte wyżej terminy powinny już brzmieć znajomo, jako że przeanalizowaliśmy te pojęcia w poprzednich sekcjach. REST to najpowszechniej stosowana platforma dla interfejsów API. W 2010 roku 74% interfejsów API w sieci publicznej stanowiły interfejsy API typu REST HTTP.

Oprócz ciągów zapytań interfejsy API REST mogą używać w żądaniach następujących pól:

  • Nagłówki: parametry, które opisują samo żądanie HTTP.
  • Treść: dane, które klient chce przesłać do serwera.

Treść pisana jest w języku formatowania danych JSON lub XML.

Formaty danych interfejsów API (JSON)

Interfejsy API REST wykorzystują format XML lub format JSON (JavaScript Object Notation) jako formaty plików dla danych przechowywanych w treści metody żądania HTTP.

W interfejsach API REST najczęściej używa się formatu JSON, ponieważ jest on prostszy, łatwiejszy do odczytu i szybciej się go analizuje. Już za chwilę omówimy pokrótce składnię i strukturę plików JSON. Aby poszerzyć swoją wiedzę, zapoznaj się z materiałami stworzonymi przez W3C: JSON syntax documentation (dokumentacja składni JSON).

JSON obsługuje następujące typy danych:

  • Liczby: wszystkie rodzaje – brak rozróżnienia między liczbami całkowitymi a wartościami liczb zmiennoprzecinkowych.
  • Ciągi: tekst w cudzysłowach.
  • Wartości logiczne: wartości True (Prawda) lub False (Fałsz).
  • Tablice: lista elementów pogrupowana według ich typu.
  • Null: „pusta” wartość.

Dane JSON składają się z par klucz-wartość. Są to połączone części danych składające się z unikalnego identyfikatora (klucza), który stanowi punkt odniesienia dla części danych (wartości). Typ danych klucza musi być ciągiem, a wartością może być którykolwiek z wyszczególnionych wyżej typów danych.

Poniżej znajdziesz przykład prostej pary klucz-wartość w formacie JSON:

"Key1" : "Value 1"

Oto kolejne przykłady:

"Key2" : 64
"Key3" : True
"Key4" : ["this", "is", "an", "array"]

Obiekt JSON wykorzystuje nawiasy klamrowe { } do grupowania danych ułożonych w pary klucz-wartość. Poniżej znajdziesz przykład obiektu zawierającego 3 pary klucz-wartość:

{
	"Name": "Julie",
	"Hometown": "Los Angeles, CA",
	"Age": 28
}

Pary klucz-wartość przechowywane w obiekcie rozdzielane są przecinkami.

Walidator JSON

Pliki JSON mogą zawierać dowolną liczbę par klucz-wartość lub obiektów. W profesjonalnych zastosowaniach programistycznych nierzadko zdarza się, że tworzone pliki składają się z setek, a nawet tysięcy wierszy. Jako programista wiesz, że jeden niewielki błąd w formatowaniu lub składni wystarczy, by zepsuć całą bazę kodu.

Walidatory JSON, na przykład jsonlint lub – jeśli jako podstawowej przeglądarki używasz Chrome – rozszerzenie JSONView, są w stanie szybko rozpoznać błędy ze składnią i formatowaniem w kodzie JSON oraz wskazać sposoby ich poprawy.

Przećwicz weryfikację kodów JSON. W nowej karcie otwórz walidator jsonlint.

W walidatorze wklej następujący blok kodu:

{
	"Name": "Julie",
	"Hometown": "Los Angeles, CA",
	"Age": 28
}

Następnie kliknij Validate JSON (Sprawdź kod JSON). W sekcji wyników powinna pojawić się zapisana zieloną czcionką wiadomość o treści Valid JSON (Prawidłowy kod JSON).

Teraz wklej w walidatorze ten blok kodu:

{
	"Name": "Julie"
	   "Hometown": "Los Angeles, CA",
	"Age": 28
}

Kliknij Validate JSON (Sprawdź kod JSON).

Zobaczysz, że brakuje w nim przecinka, a wcięcie tekstu jest niewłaściwe. Wcięcie tekstu zostanie poprawione, a walidator wyróżni miejsca, w których znalazł się błąd:

json-error.png

Zgodnie z oczekiwaniami walidatorowi udało się znaleźć brakujący identyfikator (przecinek) po 2. wierszu. Jeśli dodasz przecinek po 2. wierszu i klikniesz Validate JSON (Sprawdź kod JSON), powinien wyświetlić się następujący komunikat:

valid-json.png

Ponieważ przechodzisz poszczególne moduły, używając interfejsów API i kodu JSON, korzystanie z takiego walidatora JSON podczas debugowania błędów w składni pomoże Ci zaoszczędzić sporo problemów, czasu i wysiłku.

Sprawdź swoją wiedzę

Odpowiedz na poniższe pytania wielokrotnego wyboru, aby utrwalić wiedzę na temat omówionych pojęć.

Tworzenie pliku JSON w Cloud Console

Już za chwilę zastosujesz nabytą wiedzę, tworząc wywołania interfejsu Cloud Storage REST/JSON API w Cloud Shell w celu utworzenia zasobników i przesyłania treści.

W nowej karcie otwórz ten link, by upewnić się, że interfejs Google Cloud Storage API jest włączony. Strona powinna wyglądać tak:

JSON_API.png

Teraz otwórz sesję Cloud Shell. Uruchom poniższe polecenie, aby utworzyć i edytować plik o nazwie values.json:

nano values.json

W edytorze tekstu nano skopiuj i wklej następującą treść, zastępując część <YOUR_BUCKET_NAME> (NAZWA_TWOJEGO_ZASOBNIKA) unikalną nazwą zasobnika:

{  "name": "<YOUR_BUCKET_NAME>",
   "location": "us",
   "storageClass": "multi_regional"
}

Gdy to zrobisz, wyjdź z edytora tekstu nano, naciskając CTRL+XYENTER.

Właśnie udało Ci się utworzyć plik JSON, który zawiera obiekt posiadający 3 pary klucz-wartość: name, locationstorageClass. To te same wartości, które są wymagane podczas tworzenia zasobnika przy użyciu narzędzia wiersza polecenia gsutil lub w konsoli.

Zanim można będzie utworzyć zasobnik przy użyciu interfejsu Cloud Storage REST/JSON API, musisz zgromadzić poprawne zasady uwierzytelniania i autoryzacji.

Uwierzytelnianie i autoryzacja

Ostatni temat, który omówimy w tym module, dotyczy schematu uwierzytelniania i autoryzacji interfejsów API.

  • Uwierzytelnianie to proces ustalania tożsamości klienta.
  • Autoryzacja to proces ustalania, jakie zezwolenia dotyczące zestawu zasobów ma klient, który pomyślnie przeszedł uwierzytelnianie.

Uwierzytelnianie pozwala rozpoznać, kim jesteś, a autoryzacja określa, co możesz zrobić.

Istnieją 3 rodzaje usług uwierzytelniania/autoryzacji wykorzystywanych w interfejsach API Google. Są to klucze interfejsu API, konta usługi i OAuth. Interfejs API użyje jednej z tych usług uwierzytelniania w zależności od żądanego zasobu oraz tego, skąd wywoływany jest interfejs API.

Klucze interfejsu API

Klucze interfejsu API to tajne tokeny, które zazwyczaj występują w formie zaszyfrowanego ciągu. Można je szybko generować i równie szybko z nich korzystać. Interfejsy API korzystające z publicznych danych lub metod, które mogą być błyskawicznie zastosowane przez programistów, często używają kluczy interfejsu API do uwierzytelniania użytkowników.

W przypadku Google Cloud klucze interfejsu API identyfikują projekt wywołujący interfejs API. Dzięki temu możliwe staje się powiązanie z projektem informacji o użytkowaniu, a także odrzucanie wywołania pochodzącego od projektów, którym nie przyznano dostępu lub które nie zostały włączone przez interfejs API.

OAuth

Pod względem formatu tokeny OAuth wyglądają podobnie do kluczy interfejsów API, ale są bezpieczniejsze i można połączyć je z kontami lub tożsamościami użytkowników. Tokenów tych używa się głównie wtedy, gdy interfejsy API dają programiście możliwość dostępu do danych użytkownika.

Klucze interfejsu API dają programistom dostęp do wszystkich funkcji interfejsu API, z kolei identyfikatory klienta OAuth opierają się na zakresie – różnym tożsamościom zostają nadane różne uprawnienia.

Konta usługi

Konto usługi to szczególnego rodzaju konto Google, które należy nie do indywidualnego użytkownika końcowego, a do aplikacji lub maszyny wirtualnej. Aplikacja przyjmuje tożsamość konta usługi do wywoływania interfejsów API Google, by użytkownicy nie byli w to bezpośrednio zaangażowani.

Z konta usługi można korzystać, dostarczając jego klucz prywatny aplikacji lub używając wbudowanych kont usługi działających w Google Cloud Functions, Google App Engine, Google Compute Engine czy Google Kubernetes Engine.

Aby zapoznać się ze szczegółowym omówieniem kont usług i ról, odwiedź moduł Konta usług i role: podstawy.

Uwierzytelnianie i autoryzacja interfejsu Cloud Storage JSON/REST API

Cloud Storage to platforma, która przyznaje dostęp do danych użytkownika przechowywanych na serwerze , więc zanim skorzystasz z jej usług, musisz wygenerować toke OAuth.

W nowej karcie otwórz OAuth 2.0 Playground. Usługa ta umożliwia łatwe generowanie tokenów OAuth.

Przewiń stronę w dół i wybierz interfejs Cloud Storage API V1. Następnie wybierz zakres https://www.googleapis.com/auth/devstorage.full_control:

storage_full_control_api.png

Kliknij niebieskie pole o treści Authorize APIs (Autoryzuj interfejsy API). Spowoduje to otwarcie strony logowania Google. Wybierz swoją nazwę użytkownika Qwiklabs, a gdy pojawi się prośba o udzielenie zgód, kliknij Allow (Zezwalaj).

Do wykonania kroku 2 będzie potrzebny wygenerowany kod autoryzacji. Kliknij Exchange authorization code for tokens (Wymień kod autoryzacji na tokeny). Jeśli przejdziesz do kroku 3, kliknij panel kroku 2. Wyświetlona strona powinna przypominać tę:

beeb2e2e2585e202.png

Skopiuj token dostępu – zostanie on użyty w następnym kroku.

Tworzenie zasobnika przy użyciu interfejsu Cloud Storage JSON/REST API

Wróć do sesji Cloud Shell. W interfejsie wiersza poleceń wpisz ls i naciśnij Enter. Powinien wyświetlić się utworzony przez Ciebie wcześniej plik values.json oraz plik README-cloudshell.txt:

Wynik:

README-cloudshell.txt    values.json

Uruchom poniższe polecenie, aby ustawić token OAuth2 jako zmienną środowiskową, zastępując treść <YOUR_TOKEN> (<TWÓJ_TOKEN>) wygenerowanym przez siebie tokenem dostępu:

export OAUTH2_TOKEN=<YOUR_TOKEN>

Uruchom poniższe polecenie, aby ustawić identyfikator projektu jako zmienną środowiskową, zastępując treść <YOUR_PROJECT_ID> (<TWÓJ_IDENTYFIKATOR_PROJEKTU>) identyfikatorem projektu Qwiklabs:

export PROJECT_ID=<YOUR_PROJECT_ID>

Teraz uruchom poniższe polecenie, by utworzyć zasobnik Cloud Storage:

curl -X POST --data-binary @values.json \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: application/json" \
    "https://www.googleapis.com/storage/v1/b?project=$PROJECT_ID"

Wynik powinien wyglądać tak:

{
  "kind": "storage#bucket",
  "selfLink": "https://www.googleapis.com/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7",
  "id": "qwiklabs-gcp-02-5d551758b5a7",
  "name": "qwiklabs-gcp-02-5d551758b5a7",
  "projectNumber": "670840659006",
  "metageneration": "1",
  "location": "US",
  "storageClass": "MULTI_REGIONAL",
  "etag": "CAE=",
  "timeCreated": "2020-11-11T06:41:40.901Z",
  "updated": "2020-11-11T06:41:40.901Z",
  "iamConfiguration": {
    "bucketPolicyOnly": {
      "enabled": false
    },
    "uniformBucketLevelAccess": {
      "enabled": false
    }
  },
  "locationType": "multi-region"
}

Żądanie to łączy w sobie wszystkie przedstawione do tej pory zagadnienia. Udało Ci się użyć narzędzia interfejsu wiersza poleceń curl do utworzenia żądania metody HTTP POST, przekazać plik values.json do treści żądania, a także przekazać token OAuth i specyfikację JSON jako nagłówki żądania. Żądanie zostało przekierowane do punktu końcowego Cloud Storage zawierającego parametr ciągu zapytania podłączony do Twojego identyfikatora projektu Google Cloud.

Wyświetlanie nowo utworzonego zasobnika Cloud Storage

Aby wyświetlić nowo utworzony zasobnik, w menu nawigacyjnym wybierz Przechowywanie danych > Przeglądarka:

786bb3559131e3c1.png

Testowanie ukończonego zadania

Kliknij Check my progress (Sprawdź postępy), by zobaczyć stan realizacji zadania. Jeśli udało Ci się utworzyć zasobnik przy użyciu interfejsu Cloud Storage JSON/REST API, wyświetli się odpowiedni wynik.

Utwórz zasobnik przy użyciu interfejsu Cloud Storage JSON/REST API

Przesyłanie pliku przy użyciu interfejsu Cloud Storage JSON/REST API

Interfejsu Cloud Storage JSON/REST API możesz używać w celu przesyłania plików do zasobników.

Zapisz na komputerze poniższy obraz, nazywając plik demo-image.png:

a00af7664effa025.png

W sesji Cloud Shell, w prawym górnym rogu strony kliknij ikonę menu z trzema kropkami, a następnie kliknij Upload file (Prześlij plik). Wybierz plik demo-image.png. Spowoduje to dodanie obrazu do Twojego katalogu.

Uruchom poniższe polecenie, aby uzyskać ścieżkę do pliku obrazu:

realpath demo-image.png

Wynik powinien wyglądać tak:

/home/gcpstaging25084_student/demo-image.png

Ustaw ścieżkę pliku jako zmienną środowiskową, uruchamiając poniższe polecenie i zastępując część <DEMO_IMAGE_PATH> (<ŚCIEŻKA_OBRAZU_DEMO_IMAGE>) danymi wyjściowymi uzyskanymi w poprzednim poleceniu:

export OBJECT=<DEMO_IMAGE_PATH>

Ustaw nazwę zasobnika jako zmienną środowiskową, uruchamiając poniższe polecenie i zastępując część <YOUR_BUCKET> (<TWÓJ_ZASOBNIK>) nazwą Twojego zasobnika:

export BUCKET_NAME=<YOUR_BUCKET>

Teraz uruchom poniższe polecenie, by przesłać obraz do swojego zasobnika Cloud Storage:

curl -X POST --data-binary @$OBJECT \
    -H "Authorization: Bearer $OAUTH2_TOKEN" \
    -H "Content-Type: image/png" \
    "https://www.googleapis.com/upload/storage/v1/b/$BUCKET_NAME/o?uploadType=media&name=demo-image"

Wynik powinien wyglądać tak:

{
  "kind": "storage#object",
  "id": "qwiklabs-gcp-02-5d551758b5a7/demo-image/1605077118178936",
  "selfLink": "https://www.googleapis.com/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7/o/demo-image",
  "mediaLink": "https://www.googleapis.com/download/storage/v1/b/qwiklabs-gcp-02-5d551758b5a7/o/demo-image?generation=1605077118178936&alt=media",
  "name": "demo-image",
  "bucket": "qwiklabs-gcp-02-5d551758b5a7",
  "generation": "1605077118178936",
  "metageneration": "1",
  "contentType": "image/png",
  "storageClass": "MULTI_REGIONAL",
  "size": "401951",
  "md5Hash": "LbpHpwhnApQKQx9IEXjTsQ==",
  "crc32c": "j5oPrg==",
  "etag": "CPis3Zvy+ewCEAE=",
  "timeCreated": "2020-11-11T06:45:18.178Z",
  "updated": "2020-11-11T06:45:18.178Z",
  "timeStorageClassUpdated": "2020-11-11T06:45:18.178Z"
}

Aby zobaczyć, czy obraz został dodany do zasobnika, otwórz menu nawigacyjne i wybierz Przechowywanie danych > Przeglądarka. Następnie kliknij nazwę zasobnika. Plik demo-image powinien widnieć jako dodany:

9d8946af3d651c6b.png

Kliknięcie obrazu otworzy stronę Szczegółów obiektu.

Testowanie ukończonego zadania

Kliknij Check my progress (Sprawdź postępy), by zobaczyć stan realizacji zadania. Jeśli udało Ci się przesłać plik przy użyciu interfejsu Cloud Storage JSON/REST API, wyświetli się odpowiedni wynik.

Prześlij plik przy użyciu interfejsu Cloud Storage JSON/REST API

Gratulacje!

Ten moduł pozwolił Ci przyswoić sporo informacji dotyczących interfejsów API, a także wykonać praktyczne ćwiczenia związane z interfejsem Cloud Storage JSON/REST API. Masz też już wiedzę na temat interfejsów Cloud APIs, architektury API, protokołu i metod HTTP, punktów końcowych, interfejsów API typu REST, plików JSON oraz zasad autoryzacji interfejsu API. Możesz teraz śmiało podjąć się innych dostępnych w Qwiklabs modułów dotyczących interfejsów API.

Zakończenie modułu

Ten moduł praktyczny dobiegł końca. U góry strony kliknij przycisk End Lab (Zakończ moduł):

end_lab.gif

Będziemy wdzięczni, jeśli ocenisz każdy zrealizowany przez siebie moduł oferowany przez Qwiklabs. Jeżeli ten moduł Ci się podobał, wystaw mu ocenę: dd499d096220243f.png

Napisz komentarz o swoich wrażeniach w oknie „Comment” („Skomentuj”). Google docenia każdą przemyślaną opinię.

Zakończenie modułu spowoduje anulowanie dostępu do projektu i usług oraz wyników wykonanych ćwiczeń. Jeśli wrócisz do Cloud Console, zobaczysz, że nastąpiło automatyczne wylogowanie. Możesz zamknąć tę kartę.

assistant-quest-badge.png ml-badge.png gsuite-badge.png c-badge.png API_Ex_badge.png

Ukończ kurs

Ten moduł do samodzielnego ukończenia wchodzi w skład kursów Qwiklabs: OK Google: Build Interactive Apps with Google Assistant, Machine Learning APIs, G Suite: Integrations, Developing Data and Machine Learning Apps with C# oraz Exploring APIs.

Każdy kurs składa się z zestawu powiązanych ze sobą modułów, które razem tworzą ścieżkę szkoleniową. Za ukończenie kursu otrzymujesz widoczną powyżej odznakę – stanowi ona potwierdzenie Twojego osiągnięcia. Swoje odznaki możesz ustawiać jako widoczne publicznie, a także podać do nich linki w swoim CV lub w mediach społecznościowych. Zapisz się na kurs, a natychmiast po jego ukończeniu otrzymasz odpowiednie potwierdzenie. Zobacz inne dostępne kursy Qwiklabs

Kolejne kroki / Więcej informacji

Jeśli chcesz dowiedzieć się więcej o interfejsach API, nie przegap tych modułów:

Szkolenia i certyfikaty Google Cloud

…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie umiejętności i doświadczenia uzyskanego w zakresie technologii Google Cloud.

Ostatnia aktualizacja instrukcji: 20 listopada 2020 r
Ostatni test modułu: 20 listopada 2020 r

Copyright 2020 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.