w tym artykule porozmawiamy o najlepszej technologii interakcji między oprogramowaniem i przetestujemy ją na najpopularniejszym języku do tworzenia oprogramowania.
- co to jest Java REST API?
- ok, ale czym dokładnie jest API?
- Jak działa ten interfejs?
- rodzaje żądań API
- ale co oznacza odpoczynek?
- wymagania wstępne
- przegląd
- jak zacząć używać API w Javie
- Zarejestruj się w RapidAPI
- Znajdź API
- Subskrybuj API
- Przetestuj punkty końcowe
- Pobierz dane za pomocą API
- Pobierz odpowiedź JSON
- przykład: używanie API Java& do wyświetlania innych typów danych
- wnioski
- FAQ
- Jak utworzyć API w Javie?
- czy Java to API?
- czy JSON to API?
co to jest Java REST API?
to trudne pytanie, więc podzielimy je na kilka części. Java jest jednym z najpopularniejszych języków programowania na świecie. Według rankingu TIOBE (który porządkuje języki według ich indeksu popularności) jest on najbardziej popularny. Istnieje wiele powodów, ale preferujemy tezę, że Java jest rozpowszechniona, łatwa do wdrożenia i ma magiczny zestaw narzędzi „napisz raz, uruchom wszędzie”.
chcesz zamiast tego zbudować API? Sprawdź jak stworzyć API w Javie
ok, ale czym dokładnie jest API?
cóż, API oznacza interfejs programowania aplikacji.
W skrócie, jest to zbiór reguł, które kontrolują interakcję między oprogramowaniem (tj. obiekt, który otrzymuje jakieś zadanie i obiekt, który daje to zadanie). API pozwala nam na pominięcie głębokiego zagłębiania się w kod źródłowy jakiegoś oprogramowania zewnętrznego, jednocześnie pozwalając nam na szybkie i łatwe korzystanie z ich przywilejów.
Jak działa ten interfejs?
Po pierwsze i najważniejsze, API powinno mieć host-URL (lub bazowy adres URL), który jest głównym adresem, z którym będziesz wchodzić w interakcje.
ponadto API mają predefiniowany zestaw punktów końcowych – unikalnych adresów wewnątrz hosta-URL, odpowiedzialnych za ich funkcjonalność. Ponadto interfejsy API powinny posiadać dokumentację wyjaśniającą wszystkie punkty końcowe, typy zwracanych wartości itp.
Po znalezieniu interesującego API i przeczytaniu dokumentacji należy wysłać zapytanie – jedno zadanie dla serwera (po stronie odbiorczej).
metaforycznie jest to jak rozmowa między dwiema osobami: ktoś (ty) zadaje pytanie (Prośba), a rozmówca (punkt końcowy) odpowiada (odpowiedź).
rodzaje żądań API
istnieje wiele różnych typów żądań, które API może obsłużyć, ale oto najczęściej używane:
- GET – zwraca dane z serwera. Najbardziej popularna Prośba przy okazji.
- POST – dodaje nowe dane na serwerze. Często ten typ jest używany do rejestracji lub przesyłania plików.
- PUT / PATCH – aktualizuje dane, przydatne żądanie, ale nie tak poszukiwane.
- DELETE – usuwa dane z serwera.
dobrze, mamy znaczenie pierwszego i ostatniego słowa W „Java REST API”.
ale co oznacza odpoczynek?
jest to styl komunikacji programowej, który pomaga klientowi uzyskać wymagane dane w stanie well do reprezentacji (Rest-representational State transfer).
więc kiedy mówimy REST API, mamy na myśli – API, które nie tylko zwraca żądane dane, ale także przygotowuje je do dalszej pracy.
ale jak możemy stworzyć RESTful API? Wszystko, co jest wymagane-kilka ograniczeń architektonicznych:
- architektura klient-serwer-wyraźna separacja z dwóch stron. Klient wysyła żądania i czeka na odpowiedź; serwer przyjmuje wtedy odwrotną rolę. Głównym powodem tego ograniczenia-jedna strona nie dba o nic poza poprawnym formatem interakcji (to nie twój problem, jak serwer wykonuje twoje żądanie i odwrotnie).
- Bezpaństwowość – niezależność każdego pojedynczego żądania od wszystkich poprzednich i przyszłych żądań. Na przykład, jeśli wyślesz pytanie ” jakie nazwisko Charlie?”, a następnie ” ile ma lat?”, serwer nie byłby w stanie odpowiedzieć na to drugie. Serwer nie zapisuje żadnych informacji od klienta i wymaga ich w każdym żądaniu.
- Cacheability – zamiast serwera, klient mógł (a nawet powinien) zapisać niektóre dane w pamięci lokalnej (cache). Zwiększa to produktywność, o ile liczba żądań będzie mniejsza.
- System warstwowy-serwer powinien zawierać warstwy dla różnych części procesu. Jest to przydatne, ponieważ warstwy nic o sobie nie wiedzą, a serwer można łatwo skalować za pomocą nowych warstw (np. zabezpieczeń).
- jednolity interfejs – każdy punkt końcowy musi mieć unikalny adres. Proste, użyteczne i niezbędne.
teraz, gdy mamy wszystkie informacje o Java RESTful API, wypróbujmy je!
wymagania wstępne
najpierw musisz mieć zainstalowaną Javę na swoim komputerze.
ponadto, powinieneś mieć Maven package builder dla łatwej instalacji i używania site-packages. Poza tym, będziemy potrzebować tylko biblioteki Unirest do wysyłania próśb bez problemów i w kilku linijkach.
tutaj możesz spojrzeć na przykład kodu, który sprawia, że żądanie przez standardowe moduły:
wygląda dość trudno, prawda? Szczególnie InputStream jako typ zwracanej wartości (powinna być dalej przetwarzana).
spójrzmy na ten sam przykład z Unirest:
Voila! Można przypisać oczekiwany Typ odpowiedzi i pracować z nim od razu.
możesz użyć Unirest z Pomocą Mavena, następnie utworzyć projekt Java Maven i znaleźć pom.plik xml-pokazuje wszystkie zależności i narzędzia projektu. Wstaw następną część kodu XML w znaczniku <dependencies>
:
<dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version></dependency>
bardziej szczegółowe informacje na temat zależności można znaleźć tutaj.
teraz możesz zbudować swój projekt przez następne polecenie w terminalu (bądź ostrożny, używaj go tylko w głównym folderze, ponieważ pom.xml powinien być widoczny dla Mavena):mvn package
teraz możesz używać Javy do interakcji z interfejsami API.
przegląd
zanim zaczniemy, musimy znaleźć łatwe API do przetestowania. Czasami trudno jest znaleźć bezpłatne i użyteczne API do celów testowych. W RapidAPI znajdziesz ponad 10 000 interfejsów API do testowania i łączenia się z nimi. Tutaj możesz sprawdzić swoje umiejętności programistyczne, tworzyć przydatne aplikacje, a nawet tworzyć własne API.
jak zacząć używać API w Javie
Zarejestruj się w RapidAPI
Jak wspomniano wcześniej, RapidAPI ma ponad 10,000 API na początek. Z ponad milionem programistów korzystających z tej platformy, jest to jedna z najpopularniejszych i najbardziej godnych zaufania Platform API.
więc Kliknij tutaj, aby rozpocząć, to nic nie kosztuje.
Znajdź API
teraz, gdy masz konto użytkownika, znajdźmy API do zabawy.
On RapidAPI.com, API można znaleźć przeglądając:
- kategorie (przykład:
- Szukaj
- wybrane kolekcje na stronie głównej
spróbujmy wyszukać API IMDb, aby uzyskać informacje o telewizji i filmach:
Subskrybuj API
aby rozpocząć korzystanie z tego API, musisz najpierw go subskrybować. (Wskazówka: istnieje plan freemium, który pozwala na 1000 darmowych żądań API / dzień). Będziesz musiał wprowadzić swoją kartę kredytową w przypadku poniesienia nadmiernych kosztów.
Jeśli zamiast tego chcesz wypróbować darmowe API (bez karty kredytowej), przejrzyj tę kolekcję.
Po subskrypcji możesz teraz przetestować punkty końcowe.
Przetestuj punkty końcowe
zbadajmy wszystkie punkty końcowe, które są w tym API. Spójrz na lewą stronę API:
API IMDb ma tylko dwa punkty końcowe:
-
GET By Search
– przeszukaj bazę danych IMDb według ciągu zapytania -
GET By ID or Title
– uzyskaj bardziej szczegółowe informacje o konkretnym tytule (zawiera informacje o filmie/telewizji, obsadzie, produkcji i innych).
na każdym z punktów końcowych API wypełnij wymagane parametry i kliknij „Test Endpoint”.
Po prawej stronie możesz zobaczyć fragment, w którym programiści pokazują, jak połączyć się z tym API za pomocą dowolnego obsługiwanego języka.
dla tego API musimy dodać dwa nagłówki (unikalną nazwę API oraz własny token RapidAPI). Wszystkie pozostałe paramy zależą od konkretnego punktu końcowego. Zbadajmy wszystkie punkty końcowe, które są w tym API. Spójrz na lewą stronę strony głównej.
Pobierz dane za pomocą API
ok, bądź gotowy, czas na kodowanie. Dowiedzmy się wszystkiego o jakimś słynnym filmie, który istnieje wewnątrz danych imdb. Wróć do kodu i zaimportuj kolejne rzeczy:
tutaj importujemyURLEncoder
do przygotowania params do wysłania oraz 3 wymagane obiekty z biblioteki Unirest:
- do obsługi odpowiedzi (HttpResponse),
- przypisanie do niej typu JSON (JsonNode),
- i wykonanie żądania GET (Unirest).
teraz stwórzmy Twoją główną klasę, gdzie będzie cały kod:
public class App{ public static void main( String args ) throws Exception { //Here will be your code }}
nie zapomnij o wyjątkach. Powinieneś obsługiwać wszystkie ostrzeżenia i błędy w celu ulepszenia projektu.
ok, teraz stwórzmy kilka zmiennych łańcuchowych do automatyzacji niektórych procesów:
teraz, gdy utworzyliśmy zapytanie, wyślijmy zapytanie i zajmiemy się odpowiedzią:
jak widzisz, jest to dość proste.
aby utworzyć żądanie, użyj biblioteki Unirest z funkcją GET.
zwróć uwagę na nagłówki – możemy je dodać za pomocą kropek do dzielenia.
Po wykonaniu żądania i obsłudze jego odpowiedzi przez obiekt HttpResponse
, możemy zobaczyć wynik.
pierwszy println
pokazuje kod statusu odpowiedzi – krótki numer, który wyjaśnia sytuację z naszymi żądanymi działaniami.
w naszym przypadku, jeśli wszystko jest w porządku, powinno zwrócić status 200 – OK.
drugi println
z kolei pokazuje jeden z nagłówków odpowiedzi – „Content-Type”.
zobaczmy, co powinniśmy uzyskać z wbudowaną konsolą API w RapidAPI. Po prostu wprowadź zapytanie w pola formularza i kliknij „Test Endpoint”:
powinieneś zobaczyć ten sam wynik, co na powyższym zrzucie ekranu.
teraz sprawdźmy nasz kod. Uruchom swój program, a zobaczysz:
200
Pobierz odpowiedź JSON
w poprzedniej sekcji kodu użyliśmy obiektuJsonNode
do przypisania typu formatu JSON do odpowiedzi.
problem polega na tym, że domyślny obiekt jsonnode drukuje DANE w jednym wierszu, co jest raczej trudne do zrozumienia. Dodajmy jedną bibliotekę do ładowania danych-GSON. Zmodyfikuj swój pom.plik xml z następną zależnością:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>
teraz dodajmy kilka linii importu w sekcji import *.plik java:
te obiekty pomogą nam w ładnym wydruku naszego JSON. Ok, teraz możemy wywołać punkt końcowy i uzyskać odpowiedź:
Jeśli wszystko pójdzie dobrze, powinniśmy zobaczyć następującą odpowiedź:
przykład: używanie API Java& do wyświetlania innych typów danych
jak możesz pamiętać, nagłówek typu Content poprzednich żądań był dla „application/json”, ale co, jeśli chcemy wysłać / otrzymać coś, czego nie można przetworzyć w JSON?
na przykład plik lub obraz?
spróbujmy zademonstrować to za pomocą API generatora memów.
API generatora memów składa się z 5 punktów końcowych:
- Generuj meme
- Pobierz czcionki
- wgraj Obraz
- wgraj czcionkę
- Pobierz obrazy
użyjmy punktu końcowego Generuj meme:
najpierw zmodyfikuj nasz import, dodając te linie do góry naszego kodu:
import java.io.InputStream;import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;
teraz, wklej poniższy fragment kodu wewnątrz głównej metody:
tutaj przetwarzamy surową treść odpowiedzi do obiektuInputStream
. Następnym krokiem jest odczytanie go w BufferedImage
obiekt – obraz dynamiczny w pamięci programu.
na koniec stwórzmy (lub zaktualizujmy) obrazek.plik jpg i zapisać w nim bufor. Powinno to spowodować następujące wyjście:
jak widzisz, API zwraca obiekt obrazu.
aby zobaczyć rzeczywisty obraz, sprawdźmy główny folder naszego projektu i powinieneś znaleźć:
wnioski
w tym przewodniku zbadaliśmy, jak używać RapidAPI do tworzenia ekscytujących i użytecznych aplikacji Java REST API i wypróbowaliśmy kilka pomocnych interfejsów API do usuwania kluczowych momentów w tej technice.
- Jak używać API
- z Pythonem
- z PHP
- z JavaScript
- z React
- Axios
- z NodeJS
- z VueJS
- z React
- z Ruby on Rails
- z c#
- w Arkuszach Google
- jak utworzyć API w Javie
- lista samouczków REST API
- jak korzystać z API Twittera w Javie
- jak korzystać z API Skyscanner w Javie
- Jak korzystać z API Yahoo Finance w Javie
FAQ
Jak utworzyć API w Javie?
zapoznaj się z samouczkami Java API dotyczącymi tworzenia interfejsu API.
czy Java to API?
Java jest językiem programowania.
API to zestaw definicji i protokołów, które umożliwiają komunikowanie się produktów i usług technologicznych.
interfejs programowania aplikacji Java (API) może odnosić się do Java development kit (JDK) lub API, które są dostępne za pomocą języka Java.