tässä artikkelissa puhumme paras tekniikka vuorovaikutusta ohjelmistojen ja testata sitä suosituin kieli luoda ohjelmistoja.
- mikä on Java REST API?
- ok, mutta mikä tarkalleen on API?
- miten tämä rajapinta toimii?
- API – pyyntöjen tyypit
- mutta mitä lepo tarkoittaa?
- edellytykset
- yleiskatsaus
- Kuinka aloittaa ohjelmointirajapintojen käyttö Javan kanssa
- tilaa RapidAPI
- Etsi API
- tilaa API
- testaa päätepisteet
- Hae dataa API: n avulla
- Get a JSON response
- esimerkki: Java & sovellusliittymät muiden tietojen näyttämiseksi
- johtopäätös
- FAQ
- miten voit luoda API: n Javassa?
- onko Java API?
- onko JSON API?
mikä on Java REST API?
Tämä on vaikea kysymys, joten jaamme sen muutamaan osaan. Java on yksi maailman suosituimmista ohjelmointikielistä. Mukaan TIOBE ranking (joka tilaa kieliä niiden suosio indeksi), se on itse asiassa suosituin. On monia syitä siihen, mutta me mieluummin thesis, että Java on laaja, helppo ottaa käyttöön, ja on ”kirjoita kerran, ajaa kaikkialla” magic toolbox.
haluatko rakentaa API: n sen sijaan? Katso, miten API luodaan Javassa
ok, mutta mikä tarkalleen on API?
no, API tulee sanoista Application Programming Interface.
lyhyesti sanottuna se on joukko sääntöjä, jotka ohjaavat ohjelmistojen välistä vuorovaikutusta (eli objekti, joka saa jonkin tehtävän, ja objekti, joka antaa tämän tehtävän). Sovellusliittymien avulla voimme hypätä syvälle kolmannen puolen ohjelmistojen lähdekoodiin ja käyttää niiden oikeuksia nopeasti ja helposti.
miten tämä rajapinta toimii?
ennen kaikkea API: lla tulee olla isäntä-URL (tai perus-URL), joka on pääosoite, jonka kanssa olet vuorovaikutuksessa.
myös Sovellusliittymillä on ennalta määritelty joukko päätepisteitä – yksilölliset osoitteet host-URL: n sisällä, jotka vastaavat niiden toimivuudesta. Lisäksi Ohjelmointirajapinnoissa tulee olla dokumentaatio, jossa selitetään kaikki tutkittavat ominaisuudet, palautettujen arvojen tyypit jne.
kun olet löytänyt mielenkiintoisen API: n ja lukenut dokumentaation, sinun täytyy lähettää pyyntö – yksi ainoa tehtävä palvelimelle (vastaanottavalle puolelle).
vertauskuvallisesti se on kuin kahden ihmisen välinen keskustelu: joku (sinä) kysyy kysymyksen (pyyntö), ja keskustelukumppani (päätepiste) vastaa (vastaus).
API – pyyntöjen tyypit
on monia erityyppisiä pyyntöjä, joita API voisi käsitellä, mutta tässä ovat eniten käytetyt:
- Hae-palautustietoja palvelimelta. Suosituin pyyntö muuten.
- lisää palvelimelle jälkikäteen uutta tietoa. Usein tätä tyyppiä käytetään rekisteröitymiseen tai tiedostojen lataamiseen.
- PUT / PATCH – päivitysten tiedot, hyödyllinen pyyntö, mutta ei niin haluttu.
- DELETE – poistaa tietoja palvelimelta.
okei, olemme saaneet ensimmäisen ja viimeisen sanan merkityksen ”Java REST API”: ssa.
mutta mitä lepo tarkoittaa?
Tämä on ohjelmistoviestinnän tyyli, joka auttaa asiakasta saamaan tarvittavat tiedot kaivotilaan edustusta varten (REST-representational state transfer).
joten kun sanomme REST API, tarkoitamme sovellusliittymiä, jotka eivät ainoastaan palauta pyydettyjä tietoja, vaan myös valmistelevat niitä jatkotyötä varten.
mutta miten voimme luoda levollisen API: n? Kaikki mitä tarvitaan-joukko arkkitehtonisia rajoitteita:
- asiakas-palvelinarkkitehtuuri – selkeä erottaminen kahdella puolella. Asiakas lähettää pyyntöjä ja odottaa vastausta; palvelin ottaa sitten päinvastaisen roolin. Tärkein syy tähän rajoitukseen – toinen puoli ei välitä muusta kuin vuorovaikutuksen oikeasta muodosta (se ei ole sinun ongelmasi, miten palvelin suorittaa pyyntösi ja päinvastoin).
- Valtiottomuus-kunkin yksittäisen pyynnön riippumattomuus kaikista aikaisemmista ja tulevista pyynnöistä. Jos esimerkiksi lähettäisit kysymyksen ” Mikä Charlien sukunimi?”, ja perään ” How old is he?”, palvelin ei pystyisi vastaamaan jälkimmäiseen. Palvelin ei tallenna mitään tietoja asiakkaalta ja vaatii sitä jokaisessa pyynnössä.
- Cacheability – palvelimen sijaan asiakas voisi (ja jopa pitäisi) tallentaa joitakin tietoja paikallisesta tallennustilasta (välimuisti). Se lisää tuottavuutta, sikäli kun pyyntöjen määrä jää pienemmäksi.
- Layered system – palvelimen tulisi sisältää kerroksia prosessin eri osille. Se on hyödyllinen, koska kerrokset eivät tiedä mitään toisistaan ja palvelin voidaan helposti skaalata uusia kerroksia (esim., turvallisuus).
- yhtenäinen rajapinta – jokaisella päätepisteellä on oltava yksilöllinen osoite. Yksinkertainen, hyödyllinen ja tarpeellinen.
nyt kun meillä on kaikki tieto Javan Levollisista sovellusliittymistä, kokeillaan sitä!
edellytykset
ensin koneeseesi pitää asentaa Java.
myös, sinun pitäisi olla Maven package builder helppo asentaa ja käyttää site-paketteja. Muuten, tarvitsemme vain unirest kirjasto tehdä pyyntöjä ilman ongelmia ja muutaman rivin.
Täältä voit katsoa esimerkin koodista, joka tekee pyynnön standardimoduuleilla:
näyttää aika vaikealta, eikö? Erityisesti InputStream tyyppisenä palautettuna arvona (sitä olisi edelleen käsiteltävä).
tarkastellaan samaa esimerkkiä Unirestin kanssa:
Voila! Voit määrittää odotetun vastauksen ja työskennellä sen kanssa heti.
voit käyttää Unirestia Mavenin avulla, luoda sitten Java Maven-projektin ja löytää pom: n.xml-tiedosto-se näyttää kaikki riippuvuudet ja työkalut projektin. Lisää XML-koodin seuraava osa <dependencies>
tag:
<dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version></dependency>
tarkemmat tiedot riippuvuuksista löytyvät täältä.
nyt voit rakentaa projektisi seuraavalla komennolla terminaalissa (ole varovainen, käytä sitä vain pääkansiossa, koska pom.xml pitäisi näkyä mavenille):mvn package
nyt olet valmis käyttämään Javaa vuorovaikutuksessa API: iden kanssa.
yleiskatsaus
ennen kuin aloitamme, meidän on löydettävä helppo API testattavaksi. Joskus on vaikea löytää ilmainen ja hyödyllinen API testaustarkoituksiin. Rapidapista löydät yli 10 000 sovellusliittymää testattavaksi ja yhdistettäväksi. Täällä voit testata ohjelmointitaitojasi, rakentaa hyödyllisiä sovelluksia ja jopa luoda omia sovellusliittymiä.
Kuinka aloittaa ohjelmointirajapintojen käyttö Javan kanssa
tilaa RapidAPI
kuten aiemmin mainittiin, Rapidapilla on yli 10 000 ohjelmointirajapintaa. Ja yli 1 miljoonaa kehittäjää käyttää alustaansa, se on yksi suosituimmista ja luotettavimmista API-alustoista.
joten klikkaa tästä aloittaaksesi, se on ilmaista.
Etsi API
nyt kun sinulla on käyttäjätili, etsitään API, jolla pelata.
On RapidAPI.com, sovellusliittymiä selaamalla löydät:
- Kategoriat (esimerkki: Pelirajapinnat)
- haku
- Kuratoidut kokoelmat Kotisivulla
kokeillaan etsiä IMDb-sovellusliittymää saadaksesi tietoa televisiosta ja elokuvista:
tilaa API
aloittaaksesi tämän API: n käytön, sinun on ensin tilattava se. (Vihje: freemium-suunnitelma mahdollistaa 1000 ilmaisen API-pyynnön/päivä). Sinun on annettava luottokorttisi, jos sinulle sattuu ylilyöntejä.
Jos haluat sen sijaan kokeilla ilmaisia sovellusliittymiä (ilman luottokorttia), selaa tätä kokoelmaa.
kun olet tilannut, olet nyt valmis testaamaan päätepisteitä.
testaa päätepisteet
tutkitaan kaikki päätepisteet, jotka ovat tässä API: ssa. Katso API – sivun vasemmalta puolelta:
IMDb – sovellusliittymässä on vain kaksi päätepistettä:
-
GET By Search
– Hae IMDb-tietokannasta kyselymerkkijonolla -
GET By ID or Title
– Hanki tarkempaa tietoa tietystä otsikosta (sisältää tietoa elokuvasta/tv: stä, näyttelijäkaartista, tuotannosta ja muusta).
jommassakummassa API-päätepisteessä täytä vaaditut parametrit ja napsauta ”Test Endpoint”.
oikealla puolella näet pätkä-osan, jossa kehittäjät näyttävät, miten tähän API: hin muodostetaan yhteys millä tahansa tuetulla kielellä.
tälle API: lle on lisättävä kaksi otsikkoa (API unique name ja oma RapidAPI token). Kaikki muut paramit riippuvat konkreettisesta päätepisteestä. Tutkitaan kaikki tämän API: n päätepisteet. Katso etusivun vasemmalta puolelta.
Hae dataa API: n avulla
Okay, be ready, it ’ s time for coding. Otetaan selvää kaikesta kuuluisasta elokuvasta, joka on olemassa imdb-datan sisällä. Palaa koodiisi ja tuo seuraavat asiat:
täällä tuomme URLEncoder
lähetettävien paramenttien valmistelua varten sekä 3 unirestin kirjastosta vaadittua esinettä:
- vastauksen käsittelyä varten (HttpResponse),
- JSON-tyypin osoittamista sille (JsonNode),
- ja GET-pyynnön tekemistä (Unirest) varten.
nyt luodaan pääluokka, jossa kaikki koodi on:
public class App{ public static void main( String args ) throws Exception { //Here will be your code }}
älä unohda poikkeusta. Sinun pitäisi käsitellä kaikki varoitukset ja virheet parantaa hankkeen.
Okei, nyt luodaan muutama merkkijonomuuttuja joidenkin prosessien automatisointiin:
nyt kun olemme luoneet kyselyn, lähetetään pyyntö ja käsitellään vastaus:
kuten näette, se on aika yksinkertaista.
pyynnön luomiseen käytä GET-funktiolla varustettua UNIREST-kirjastoa.
kiinnitä huomiota otsikoihin – voimme lisätä ne käyttämällä pisteitä jakoon.
tehtyämme pyynnön ja käsiteltyämme sen vastauksen HttpResponse
object, voimme nähdä tuloksen.
ensimmäinen println
näyttää vastauksen tilakoodin – lyhyen numeron, joka selittää tilanteen pyydetyillä toiminnoillamme.
meidän tapauksessamme, jos kaikki on hyvin, sen pitäisi palauttaa 200 – OK tila.
toinen println
puolestaan esittää yhden vastausotsikon – ”Content-Type”.
katsotaan, mitä rapidapissa pitäisi saada sisäänrakennetulla API-konsolilla. Syötä kyselysi lomakekenttään ja klikkaa ”Test Endpoint”:
sinun pitäisi nähdä sama tulos kuin yllä olevassa kuvakaappauksessa.
nyt tarkistetaan meidän koodi. Suorita ohjelma, ja sinun pitäisi nähdä:
200
Get a JSON response
edellisessä koodiosiossa käytimme JsonNode
object osoittaaksemme vastaukseen JSON-formaattityypin.
ongelmana on, että oletuksena jsonnode-olio tulostaa dataa yhdellä rivillä, mitä on melko vaikea ymmärtää. Lisätään yksi kirjasto tietojen esittämiseen – GSON. Muokkaa pommia.xml-tiedosto, jolla on seuraava riippuvuus:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>
nyt lisätään joitakin tuontirivejä oman *tuonti-osioon.java-tiedosto:
nämä objektit auttavat meitä pretty-print our JSON. Okei, nyt voimme soittaa päätepisteeseen ja saada vastauksen:
Jos kaikki menee hyvin, meidän pitäisi nähdä seuraava vastaus:
esimerkki: Java & sovellusliittymät muiden tietojen näyttämiseksi
kuten ehkä muistat, aiempien pyyntöjen Sisältötyyppinen otsikko oli ”application/json”, mutta entä jos haluamme lähettää / vastaanottaa jotain, jota ei voi käsitellä JSONISSA?
esimerkiksi tiedosto tai kuva?
kokeillaan tämän osoittamista Meme Generator API: lla.
Meme Generator API koostuu 5 päätepisteestä:
- generoi meme
- Get fonts
- Upload font
- Get images
- Get images
Upload Image
käytetään Generate meme päätepistettä:
ensin muokataan tuontiamme lisäämällä nämä rivit koodimme alkuun:
import java.io.InputStream;import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;
nyt liitä seuraava koodinpätkä Päämenetelmän sisään:
tässä käsitellään vasteen raakaa runkoaInputStream
objekti. Seuraava vaihe on lukea se BufferedImage
objektidynaaminen kuva ohjelman muistissa.
lopuksi luodaan (tai päivitetään) kuva.jpg-tiedosto ja tallenna puskuri sen sisällä. Tästä tulostetaan seuraava:
kuten saatat nähdä, API palaa kuva-objektiin.
nähdäksesi varsinaisen kuvan, katsotaan projektimme pääkansiosta ja sinun pitäisi löytää:
johtopäätös
tässä oppaassa selvitimme, miten Rapidapia käytetään jännittävien ja hyödyllisten Java REST API-sovellusten tekemiseen ja kokeilimme muutamia hyödyllisiä sovellusliittymiä avainhetkien selvittämiseen tässä tekniikassa.
- kuinka käyttää API: a
- PHP: n kanssa
- JavaScriptin kanssa
- Axios
- C#
- kuinka luoda API Javan kanssa
Pythonin kanssa
React
NodeJS: n kanssa VueJS: n kanssa Ruby on Railsin kanssa
Google Sheetsissä
FAQ
miten voit luoda API: n Javassa?
Tsekkaa nämä Java API-tutoriaalit API: n luomisesta.
onko Java API?
Java on ohjelmointikieli.
sovellusliittymät ovat joukko määritelmiä ja protokollia, joiden avulla teknologiatuotteet ja palvelut voivat kommunikoida keskenään.
Java Application Programming Interface (API) voi viitata Java development kitiin (JDK) tai sovellusliittymiin, jotka ovat käytettävissä Javan avulla.