În acest articol, vom vorbi despre cea mai bună tehnologie a interacțiunii dintre software și o vom testa pe cel mai popular limbaj pentru crearea de software.
- ce este Java REST API?
- bine, dar ceea ce este exact este un API?
- cum funcționează această interfață?
- tipuri de cereri API
- dar ce înseamnă odihna?
- cerințe preliminare
- Prezentare generală
- cum să începeți să utilizați API-uri cu Java
- Înscrieți-vă pentru RapidAPI
- găsiți un API
- Abonați-vă la API
- testați punctele finale
- prelua date folosind API
- obțineți un răspuns JSON
- exemplu: folosind Java& API-uri pentru a afișa alte tipuri de date
- concluzie
- Întrebări frecvente
- cum se poate crea un API în Java?
- este Java un API?
- este JSON un API?
ce este Java REST API?
aceasta este o întrebare grea, așa că o vom împărți în câteva părți. Java este unul dintre cele mai populare limbaje de programare din lume. Conform clasamentului TIOBE (care ordonează limbile după indicele lor de popularitate), este de fapt cel mai popular. Există multe motive pentru aceasta, dar preferăm teza că Java este larg răspândită, ușor de implementat și are o cutie de instrumente magică „scrie o dată, rulează peste tot”.
căutați să construiți un API în schimb? Check out Cum de a crea un API în Java
bine, dar ceea ce este exact este un API?
Ei bine, API reprezintă interfața de programare a aplicațiilor.
pe scurt, este un set de reguli care controlează interacțiunea dintre software (adică un obiect care primește o sarcină și un obiect care dă această sarcină). API-urile ne permit să sărim adânc în codul sursă al unui software din partea a treia, permițându-ne în același timp să le folosim privilegiile rapid și ușor.
cum funcționează această interfață?
în primul rând, un API ar trebui să aibă un host-URL (sau URL de bază), care este adresa principală cu care veți interacționa.
De asemenea, API – urile au un set predefinit de endpoints-adrese unice în interiorul host-URL, responsabile pentru funcționalitatea lor. În plus, API-urile ar trebui să aibă documentație care să explice toate punctele finale, tipurile de valori returnate etc.
după ce găsiți un API interesant și citiți documentația, trebuie să trimiteți o solicitare – o singură sarcină pentru server (partea de primire).
metaforic, este ca o conversație între două persoane: cineva (tu) pune o întrebare (cerere), iar interlocutorul (punctul final) răspunde (răspuns).
tipuri de cereri API
există multe tipuri diferite de cereri pe care API le – ar putea gestiona, dar aici sunt cele mai utilizate:
- GET-returnează date de pe server. Cea mai populară cerere apropo.
- POST-adaugă date noi pe server. Adesea, acest tip este utilizat pentru înregistrarea sau încărcarea fișierelor.
- pune / PATCH – actualizări de date, cerere utilă, dar nu atât de căutat.
- DELETE-elimină datele de pe server.
bine, avem semnificația primului și ultimului cuvânt din „Java REST API”.
dar ce înseamnă odihna?
acesta este stilul de comunicare software care ajută un client să obțină datele necesare în starea de bine pentru reprezentare (REST-transfer de stat reprezentativ).
deci, atunci când spunem REST API, ne referim la API – uri care nu numai că returnează datele solicitate, ci și le pregătește pentru lucrări ulterioare.
dar cum putem crea un API odihnitor? Tot ceea ce este necesar – o grămadă de constrângeri arhitecturale:
- arhitectura Client-server – separare clară pe două părți. Clientul trimite cereri și așteaptă răspunsul; serverul ia apoi rolul opus. Principalul motiv pentru această constrângere – o parte nu-i pasă de nimic, cu excepția formatului corect al interacțiunii (nu este problema dvs. modul în care serverul efectuează solicitarea dvs. și invers).
- apatridia – independența fiecărei cereri singulare față de toate cererile anterioare și viitoare. De exemplu, dacă ați trimite întrebarea ” Ce nume de familie Charlie?”, și apoi urmați cu ” câți ani are?”, serverul nu ar putea răspunde la acesta din urmă. Serverul nu salvează nicio informație de la client și o cere în fiecare solicitare.
- Cacheability – în loc de server, clientul ar putea (și chiar ar trebui) să salveze unele date pe stocarea locală (cache). Aceasta crește productivitatea, în măsura în care numărul de cereri va fi mai mic.
- sistem stratificat-serverul ar trebui să includă straturi pentru diferite părți ale procesului. Este util deoarece straturile nu știu nimic unul despre celălalt și serverul ar putea fi ușor scalat cu straturi noi (de exemplu, securitate).
- interfață uniformă – fiecare punct final trebuie să aibă o adresă unică. Simplu, util și necesar.
acum, că avem toate informațiile despre API-urile Java RESTful, să încercăm!
cerințe preliminare
În primul rând, va trebui să aveți Java instalat pe mașină.
De asemenea, ar trebui să aveți un constructor de pachete Maven pentru instalarea și utilizarea ușoară a pachetelor de site-uri. În afară de asta, vom avea nevoie doar de Biblioteca Unirest pentru a face cereri fără probleme și în câteva rânduri.
aici poti sa te uiti la exemplul de cod care face o cerere de module standard:
pare destul de dificil, nu? Mai ales InputStream ca tip de valoare returnată (ar trebui procesată în continuare).
să ne uităm la același exemplu cu Unirest:
Voila! Ai putea atribui tipul așteptat de răspuns și de a lucra cu ea imediat.
puteți utiliza Unirest cu ajutorul Maven, apoi creați un proiect Java Maven și găsiți pom.fișier xml-afișează toate dependențele și instrumentele proiectului. Introduceți următoarea parte a codului XML în<dependencies>
tag:
<dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version></dependency>
informații mai detaliate despre dependențe pot fi găsite aici.
acum vă puteți construi proiectul prin următoarea comandă în terminal (aveți grijă, utilizați-l numai în folderul principal, deoarece pom.xml ar trebui să fie vizibil pentru Maven):mvn package
acum sunteți gata să pentru utilizarea Java pentru a interacționa cu API-uri.
Prezentare generală
înainte de a începe, va trebui să găsim un API ușor de testat. Uneori este dificil să găsiți API gratuit și util în scopuri de testare. La RapidAPI, veți găsi peste 10.000 de API-uri pentru a testa și conecta cu. Aici vă puteți testa abilitățile de programare, puteți construi aplicații utile și chiar vă puteți crea propriile API-uri.
cum să începeți să utilizați API-uri cu Java
Înscrieți-vă pentru RapidAPI
după cum am menționat anterior, RapidAPI are peste 10.000 de API-uri pentru a începe. Și cu peste 1 milion de dezvoltatori care folosesc platforma sa, este una dintre cele mai populare și de încredere platforme API.
deci, click aici pentru a începe, este gratuit.
găsiți un API
acum că aveți un cont de utilizator, să găsim un API cu care să ne jucăm.
pe RapidAPI.com, puteți găsi API-uri navigând:
- Categorii (exemplu: API-uri pentru jocuri)
- căutare
- colecții curate pe pagina principală
să încercăm să căutăm API-ul IMDb pentru a obține câteva informații despre TV și filme:
Abonați-vă la API
pentru a începe să utilizați acest API, va trebui să vă abonați mai întâi la acesta. (Sugestie: există un plan freemium care permite 1000 de cereri API gratuite/zi). Vi se va cere să introduceți cardul dvs. de credit în cazul în care suferiți surplusuri.
Dacă doriți să încercați câteva API-uri gratuite (fără card de credit), răsfoiți această colecție.
odată ce v-ați abonat, acum sunteți gata să testați punctele finale.
testați punctele finale
să explorăm toate punctele finale care sunt în acest API. Căutați în partea stângă a paginii API:
API – ul IMDb are doar două puncte finale:
-
GET By Search
– căutați în baza de date IMDb după șirul de interogare -
GET By ID or Title
– obțineți informații mai detaliate despre un anumit titlu (include informații despre film / tv, distribuție, producție și multe altele).
pe oricare dintre punctele finale API, completați parametrii necesari și faceți clic pe „Test Endpoint”.
în partea dreaptă, puteți vedea partea fragment, în cazul în care dezvoltatorii arată cum să se conecteze la acest API cu orice limbă acceptată.
pentru acest API, trebuie să adăugăm două anteturi (numele unic API și propriul nostru jeton RapidAPI). Toate celelalte params sunt în funcție de punctul final concret. Să explorăm toate punctele finale care sunt în acest API. Uită-te în partea stângă a paginii principale.
prelua date folosind API
bine, să fie gata, e timpul pentru codificare. Să aflăm totul despre un film celebru care există în datele imdb. Reveniți la codul dvs. și importați următoarele lucruri:
aici importămURLEncoder
pentru pregătirea params care urmează să fie trimise, și 3 obiecte necesare din biblioteca Unirest:
- pentru manipularea unui răspuns (HttpResponse),
- atribuirea JSON-type (JsonNode),
- și de a face o cerere GET (Unirest).
acum să vă creăm clasa principală, unde tot codul va fi:
public class App{ public static void main( String args ) throws Exception { //Here will be your code }}
nu uitați de excepție. Ar trebui să se ocupe de toate avertismentele și erorile pentru îmbunătățirea proiectului.
bine, acum să creăm câteva variabile de șir pentru automatizarea unor procese:
acum că am creat interogarea, să trimitem o solicitare și să gestionăm răspunsul:
după cum puteți vedea, este destul de simplu.
pentru a crea o cerere, utilizați o bibliotecă Unirest cu funcția GET.
acordați atenție anteturilor – le putem adăuga folosind puncte pentru divizare.
după ce a făcut o cerere și de manipulare răspunsul său deHttpResponse
obiect, putem vedea rezultatul.
Firstprintln
afișează codul de stare al răspunsului – un număr scurt care explică situația cu acțiunile noastre solicitate.
în cazul nostru, dacă totul este bine, ar trebui să returneze o stare de 200 – OK.
al doileaprintln
, la rândul său, arată unul dintre anteturile de răspuns – „Content-Type”.
Să vedem ce ar trebui să obținem cu consola API încorporată în RapidAPI. Introduceți interogarea în câmpurile formularului și faceți clic pe „Test Endpoint”:
ar trebui să vedeți același rezultat ca în captura de ecran de mai sus.
acum, să verificăm codul nostru. Rulați programul dvs. și ar trebui să vedeți:
200
obțineți un răspuns JSON
în secțiunea de cod anterioară, am folosit un obiectJsonNode
pentru atribuirea tipului de format JSON răspunsului.problema este că implicit jsonnode obiect imprimă date într-un singur rând, care este destul de greu de înțeles. Să adăugăm o bibliotecă pentru prettifying data-GSON. Modificați pom-ul.fișier xml cu următoarea dependență:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>
acum să adăugăm câteva linii de import în secțiunea import din *.fișier java:
aceste obiecte ne va ajuta în destul de imprimare JSON nostru. Bine, acum putem apela punctul final și a obține un răspuns:
dacă totul merge bine, ar trebui să vedem următorul răspuns:
exemplu: folosind Java& API-uri pentru a afișa alte tipuri de date
după cum vă amintiți, antetul de tip conținut al cererilor anterioare a fost pentru „application/json”, dar ce se întâmplă dacă vrem să trimitem/primim ceva care nu poate fi procesat în JSON?
de exemplu, un fișier sau o imagine?
să încercăm să demonstrăm acest lucru cu API-ul generatorului de Meme.
Meme Generator API este format din 5 puncte finale:
- generați meme
- Obțineți fonturi
- încărcați imaginea
- încărcați fontul
- obțineți imagini
să folosim punctul final de generare meme:
în primul rând, să modificăm importurile noastre adăugând aceste linii în partea de sus a codului nostru:
import java.io.InputStream;import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;
acum, lipiți următorul fragment de cod în interiorul metodei principale:
aici gestionăm corpul brut al răspunsului în obiectul InputStream
. Următorul pas este să – l citiți în BufferedImage
obiect-imagine dinamică în memoria programului.
în cele din urmă, să creăm (sau să actualizăm) o imagine.jpg fișier și de a salva tampon în interiorul acestuia. Aceasta ar trebui să producă următoarele:
după cum puteți vedea, API revine la un obiect imagine.
pentru a vedea imaginea reală, să verificăm folderul principal al proiectului nostru și ar trebui să găsiți:
concluzie
În acest ghid, am studiat cum să folosim RapidAPI pentru a face o aplicație API Java REST interesantă și utilă și am încercat câteva API-uri utile pentru ștergerea momentelor cheie din această tehnică.
- cum se utilizează un API
- cu Python
- cu PHP
- cu JavaScript
- cu React
- Axios
- cu NodeJS
- cu VueJS
- cu React
- cu Ruby on Rails
- cu C#
- în Google Foi de calcul
- cum se creează un API cu Java
- lista tutorialelor API REST
- cum se utilizează API-ul Twitter cu Java
- cum se utilizează API-ul Skyscanner cu Java
- cum se utilizează API-ul Yahoo Finance cu Java
Întrebări frecvente
cum se poate crea un API în Java?
Check out aceste tutoriale Java API cu privire la modul de a crea un API.
este Java un API?
Java este un limbaj de programare.API-urile sunt un set de definiții și protocoale care permit produselor și serviciilor tehnologice să comunice între ele.
O interfață de programare a aplicațiilor Java (API) se poate referi la kitul de dezvoltare Java (JDK) sau API-urile care sunt accesibile folosind Java.