hur man använder ett API med Java (Den kompletta nybörjarguiden)

i den här artikeln kommer vi att prata om den bästa tekniken för interaktionen mellan programvara och testa den på det mest populära språket för att skapa programvara.

Vad är Java REST API?

det här är en tuff fråga så vi delar upp den i några delar. Java är ett av de mest populära programmeringsspråken i världen. Enligt TIOBE-rankningen (som beställer språk efter deras popularitetsindex) är det faktiskt det mest populära. Det finns många anledningar till det, men vi föredrar avhandlingen att Java är utbredd, lätt att distribuera och har en magisk verktygslåda ”skriv en gång, kör överallt”.

vill du bygga ett API istället? Kolla in hur man skapar ett API i Java

okej, men vad är exakt är ett API?

Tja, API står för Application Programming Interface.

kort sagt, det är en uppsättning regler som styr interaktionen mellan programvara (dvs ett objekt som tar emot någon uppgift och objekt som ger denna uppgift). API: er tillåter oss att hoppa över dykning djupt i källkoden för någon tredje sida programvara samtidigt som vi kan använda sina privilegier snabbt och enkelt.

Hur fungerar det här gränssnittet?

först och främst bör ett API ha en värd-URL (eller bas-URL), som är huvudadressen som du kommer att interagera med.

APIs har också en fördefinierad uppsättning slutpunkter-unika adresser inuti värd-URL, ansvarig för deras funktionalitet. Dessutom bör API: er ha dokumentation som förklarar alla slutpunkter, typer av returnerade värden etc.

När du har hittat ett intressant API och läst dokumentation måste du skicka en förfrågan – en enda uppgift för servern (mottagningssidan).

metaforiskt är det som en konversation mellan två personer: någon (du) ställer en fråga (förfrågan) och samtalspartnern (slutpunkten) svarar (svar).

typer av API-förfrågningar

det finns många olika typer av förfrågningar som API kan hantera, men här är de mest använda:

  • GET – returns data från servern. Den mest populära förfrågan förresten.
  • POST-lägger till nya data på servern. Ofta används denna typ för registrering eller uppladdning av filer.
  • PUT / PATCH – uppdateringar data, användbar begäran men inte så eftertraktade.
  • Radera-tar bort data från servern.

Okej, vi har fått betydelsen av det första och det sista ordet i ”Java REST API”.

men vad betyder vila?

detta är stilen för mjukvarukommunikation som hjälper en klient att få de nödvändiga uppgifterna i välstaten för representation (REST-representational state transfer).

så när vi säger REST API menar vi-API: er som inte bara returnerar begärda data utan också förbereder det för vidare arbete.

men hur kan vi skapa ett RESTful API? Allt som krävs-en massa arkitektoniska begränsningar:

  • Client-server architecture – tydlig separation på två sidor. Klienten skickar förfrågningar och väntar på svaret; servern tar sedan motsatt Roll. Den främsta orsaken till denna begränsning – en sida bryr sig inte om något annat än det korrekta formatet för interaktionen (det är inte ditt problem hur servern utför din förfrågan och vice versa).
  • statslöshet-oberoende av varje enskild begäran från alla tidigare och framtida förfrågningar. Till exempel, om du skulle skicka frågan ”Vad Charlies efternamn?”, och följ sedan upp med ” hur gammal är han?”, servern skulle inte kunna svara på den senare. Servern sparar ingen information från klienten och kräver det i varje begäran.
  • Cacheability – istället för servern kan klienten (och till och med borde) spara vissa data på lokal lagring (cache). Det ökar produktiviteten, så långt antalet förfrågningar blir mindre.
  • Layered system-servern ska innehålla lager för olika delar av processen. Det är användbart eftersom lager inte vet något om varandra och servern lätt kan skalas med nya lager (t.ex. säkerhet).
  • enhetligt gränssnitt – varje slutpunkt måste ha en unik adress. Enkelt, användbart och nödvändigt.

Nu när vi har all information om Java RESTful API: er, Låt oss prova det!

förutsättningar

först måste du ha Java installerat på din dator.

Du bör också ha en Maven-Paketbyggare för enkel installation och användning av webbplatspaket. Utöver det behöver vi bara Unirest-biblioteket för att göra förfrågningar utan problem och i några rader.

Här kan du titta på exemplet på kod som gör en begäran av standardmoduler:

ser ganska svårt ut, eller hur? Speciellt InputStream som en typ av returnerat värde (det bör behandlas vidare).

låt oss titta på samma exempel med Unirest:

Voila! Du kan tilldela den förväntade typen av svar och arbeta med det direkt.

Du kan använda Unirest med hjälp av Maven, skapa sedan ett Java Maven-projekt och hitta pom.xml-fil-den visar alla beroenden och verktyg i projektet. Infoga nästa del av XML-koden i<dependencies> tag:

<dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version></dependency>

mer detaljerad information om beroenden kan hittas här.

Nu kan du bygga ditt projekt med nästa kommando i terminal (var försiktig, använd den bara i huvudmappen, eftersom pom.xml ska vara synlig för Maven):
mvn package

Nu är du redo att använda Java för att interagera med API: er.

översikt

innan vi börjar måste vi hitta ett enkelt API att testa. Ibland är det svårt att hitta gratis och användbart API för teständamål. På RapidAPI hittar du över 10 000 API: er att testa och ansluta till. Här kan du testa dina programmeringsfärdigheter, bygga användbara appar och till och med skapa dina egna API: er.

så här börjar du använda API: er med Java

registrera dig för RapidAPI

som tidigare nämnts har RapidAPI över 10 000 API: er att komma igång med. Och med över 1 miljon utvecklare som använder sin plattform är det en av de mest populära och pålitliga API-plattformarna.

så klicka här för att komma igång, det är gratis.

hitta ett API

Nu när du har ett användarkonto, låt oss hitta ett API att spela med.

på RapidAPI.com, du kan hitta API: er genom att bläddra:

  • kategorier (exempel:
  • Sök
  • Curated Samlingar på hemsidan

Låt oss försöka söka efter IMDb API för att få lite information om TV och filmer:

prenumerera på API

för att börja använda detta API måste du först prenumerera på det. (Tips: Det finns en freemium-plan som möjliggör 1000 gratis API-förfrågningar/dag). Du måste ange ditt kreditkort om du drabbas av överskott.

om du vill prova några gratis API: er (utan kreditkort) istället, bläddra i denna samling.

När du prenumererar är du nu redo att testa slutpunkterna.

testa slutpunkterna

låt oss utforska alla slutpunkter som finns i detta API. Titta på vänster sida av API-sidan:

IMDb API har bara två slutpunkter:

  1. GET By Search – sök i IMDb – databasen med frågesträng
  2. GET By ID or Title – få mer detaljerad information om en specifik titel (innehåller information om film/tv, cast, produktion och mer).

på någon av API-slutpunkterna fyller du i alla nödvändiga parametrar och klickar på ”Test Endpoint”.

på höger sida kan du se snippetdelen, där utvecklare visar hur man ansluter till detta API med vilket språk som helst som stöds.

För detta API måste vi lägga till två rubriker (API unikt namn och vår egen RapidAPI token). Alla andra parametrar är beroende av konkret slutpunkt. Låt oss utforska alla slutpunkter som finns i detta API. Titta på vänster sida av huvudsidan.

hämta data med API

okej, var redo, det är dags för kodning. Låt oss ta reda på allt om någon känd film som finns inuti imdb-data. Återgå till din kod och importera nästa saker:

här importerar vi URLEncoder för att förbereda params som ska skickas och 3 nödvändiga objekt från Unirest-biblioteket:

  1. för hantering av ett svar (HttpResponse),
  2. tilldela JSON-typ till det (JsonNode),
  3. och göra en GET-begäran (Unirest).

låt oss nu skapa din huvudklass, där all kod kommer att vara:

public class App{ public static void main( String args ) throws Exception { //Here will be your code }}

glöm inte undantag. Du bör hantera alla varningar och fel för att förbättra projektet.

Okej, låt oss nu skapa några strängvariabler för att automatisera vissa processer:

Nu när vi har skapat frågan, låt oss skicka en förfrågan och hantera svaret:

som du kan se är det ganska enkelt.

för att skapa en förfrågan, använd ett Unirest-bibliotek med GET-funktionen.

Var uppmärksam på rubrikerna – vi kan lägga till dem genom att använda prickar för delning.

Efter att ha gjort en förfrågan och hanterat sitt svar med HttpResponse – objektet kan vi se resultatet.

första println visar statuskoden för svaret – ett kort nummer som förklarar situationen med våra begärda åtgärder.

i vårt fall, om allt är bra, ska det returnera en 200-OK-status.

den andra println visar i sin tur en av svarhuvudena – ”innehållstyp”.

Låt oss se vad vi ska få med inbyggd API-konsol i RapidAPI. Skriv bara in din fråga i formulärfälten och klicka på ”Test Endpoint”:

du ska se samma resultat som visas på skärmdumpen ovan.

nu, låt oss kolla vår kod. Kör ditt program, och du bör se:

200

få ett JSON-svar

i föregående kodavsnitt använde vi ett JsonNode objekt för att tilldela JSON-formattypen till svaret.

problemet är att standard jsonnode-objekt skriver ut data i en enda rad, vilket är ganska svårt att förstå. Låt oss lägga till ett bibliotek för prettifying data – GSON. Ändra din pom.xml-fil med nästa beroende:

<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>

låt oss nu lägga till några importrader i importavsnittet i din *.java-fil:

dessa objekt hjälper oss i pretty-print vår JSON. Okej, nu kan vi ringa slutpunkten och få ett svar:

om allt går bra bör vi se följande svar:

exempel: använda Java & API: er för att visa andra typer av Data

som du kanske kommer ihåg var innehållstypen för de tidigare förfrågningarna för” application/json”, men vad händer om vi vill skicka/ta emot något som inte kan behandlas i JSON?

till exempel en fil eller bild?

Låt oss försöka demonstrera detta med Meme Generator API.

Meme Generator API består av 5 slutpunkter:

  • generera meme
  • få teckensnitt
  • Ladda upp bild
  • Ladda upp teckensnitt
  • få bilder

Låt oss använda Generate meme endpoint:

först, låt oss ändra vår import genom att lägga till dessa rader till toppen av vår kod:

import java.io.InputStream;import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;

nu, klistra in följande kodavsnitt inuti huvudmetoden:

här hanterar vi rå kropp av svaret i InputStream – objektet. Nästa steg är att läsa det iBufferedImage objektdynamisk bild i programmets minne.

slutligen, låt oss skapa (eller uppdatera) en bild.jpg-fil och spara buffert inuti den. Detta bör mata ut följande:


som du kanske ser återgår API till ett bildobjekt.

För att se den faktiska bilden, låt oss kolla huvudmappen i vårt projekt och du bör hitta:

slutsats

i den här guiden studerade vi hur man använder RapidAPI för att göra en spännande och användbar Java REST API-applikationer och försökte några användbara API: er för att rensa viktiga ögonblick i denna teknik.

  • hur man använder ett API
    • med Python
    • med PHP
    • med JavaScript
      • med React
        • Axios
      • med NodeJS
      • med VueJS
    • med Ruby on Rails
    • med C#
    • I Google hur man skapar ett api med Java
  • hur man skapar ett api med Java
  • lista över REST API tutorials
  • hur man använder Twitter API med Java
  • hur man använder Skyscanner API med Java
  • hur man använder Yahoo Finance API med Java

FAQ

Hur kan du skapa ett api i Java?

kolla in dessa Java API Tutorials om hur man skapar ett API.

är Java ett API?

Java är ett programmeringsspråk.

API: er är en uppsättning definitioner och protokoll som gör det möjligt för teknikprodukter och tjänster att kommunicera med varandra.

ett Java Application Programming Interface (API) kan referera till Java development kit (JDK) eller API: er som är tillgängliga med Java.

är JSON ett API?

Related Posts

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *