Programmēšana

RESTful — īsa rokasgrāmata iesācējiem

2021. gada 30. oktobris

Ja vēlaties uzbūvēt lietojumprogrammas saskarne (API) tīmekļa lietojumprogrammām tiek izmantots RESTful. Kas ir lietojumprogrammu saskarne (API)? Lietojumprogrammas saskarne ir starpnieks starp jebkurām divām programmatūras lietojumprogrammām. Tas ļauj divām lietojumprogrammām droši sazināties savā starpā. Tipiskas API lietojumprogrammas ikdienas dzīvē ir Facebook, tērzēšanas lietojumprogrammu vai laikapstākļu prognožu lietotnes izmantošana mobilajā tālrunī.

Novērosim vienu vienkāršu piemēru, lai saprastu, kas īsti ir API? Apsveriet restorāna piemēru. Mēs ejam uz restorānu un ēdam mūsu izvēlēto ēdienu. Mēs novērojam ēdienkarti un pastāstām viesmīlim par jūsu izvēlētajām precēm no ēdienkartes. Pēc tam viesmīlis paziņo jūsu pasūtījumu virtuves nodaļai, un jūsu ēdiens tiek pagatavots. Kad ēdiens ir gatavs, viesmīlis to pasniedz pie jūsu galda. Šeit viesmīlis ir saskarne starp jums un virtuves nodaļu. Tas pats notiek, kamēr divas sistēmas sazinās.

Lietojumprogrammu saskarne (API) ir iedalīta četros primārajos veidos: OpenAPI, partneru API, iekšējās API un saliktās API. OepnAPI var piekļūt ikviens, jo tie ir publiski pieejami. Partneru API konkrētam lietotājam ir vajadzīgas atbilstošas ​​piekļuves tiesības, jo tās nav izstrādātas publiskai lietošanai. Iekšējās API ir īpaši izstrādātas uzņēmuma iekšējai lietošanai. Visbeidzot, saliktās API parasti tiek izmantotas, lai paātrinātu uzņēmuma darbību un veiktspēju.

Vēl viens API veids ir tīmekļa pakalpojumu API. Ir četri primārie tīmekļa pakalpojumu API — SOAP, XML-RPC, JSON-RPC un REST. SOAP nozīmē a Vienkāršs objektu piekļuves protokols , kas pārsūta datus, izmantojot XML formātu. SOAP API ietver izmantošanu Web pakalpojumu definīcijas valoda (WSDL), lai definētu tā saskarni. Vēl viens tīmekļa pakalpojuma API ir XML-RPC . Kā norāda nosaukums, tas izmantoja XML veidlapu datu koplietošanai. XML-RPC API ir vienkāršāka un pieejamāka nekā SOAP API.

Nākamā tīmekļa pakalpojuma API ir JSON-RPC . Tas ir tāds pats API kā XML, taču datu koplietošanai tiek izmantots JSON formāts. Visbeidzot, REST API atšķiras no visām iepriekšminētajām. Tā ir arhitektūras standartu kolekcija. REST API sauc arī par RESTful API. Tā ir viena no visbiežāk izmantotajām tīmekļa pakalpojumu API, jo tai ir nepieciešams ārkārtīgi mazāks joslas platums.

Šajā rakstā mēs redzēsim īsu ceļvedi par RESTful tīmekļa pakalpojumu. Šī ziņa palīdzēs jums uzzināt visu par RESTful tīmekļa pakalpojumu. Mēs esam izskaidrojuši RESTful tīmekļa pakalpojumu koncepcijas vienkāršāk, izmantojot vienkāršus piemērus. Viena lieta, kas jāatceras, pirms sākt saproti ATPŪTU API nozīmē, ka jums ir jābūt labākām zināšanām par Java programmēšanas valodu, HTML, CSS, AJAX un teksta redaktoru, jo RESTful ir tīmekļa pakalpojums tīmekļa lietojumprogrammu izstrādei. Tātad, sāksim mūsu RESTful API apmācību.

Satura rādītājs

Kas ir RESTful Web Service API?

Pirms mēs zinām, kas ir RESTful API, vispirms uzzināsim, kas patiesībā ir tīmekļa pakalpojums. A tīmekļa pakalpojums ir standartu vai principu kopums, kas nepieciešams datu koplietošanai vai apmaiņai starp sistēmām. Mūsdienās savos mobilajos tālruņos un galddatoros izmantojam vairākas lietojumprogrammas. Šīs lietojumprogrammas ir rakstītas daudzās programmēšanas valodās, tomēr tās darbojas dažādās operētājsistēmās. Tīmekļa pakalpojums ļauj piekļūt noteiktai programmatūras lietojumprogrammai dažādās operētājsistēmās.

RESTful API ir tīmekļa pakalpojuma API. Tas ietver arhitektūras standartu kolekciju un izmanto HTTP protokolu, lai piekļūtu konkrētiem datiem un tos izmantotu. REST nozīmē Pārstāvniecības valsts nodošana . RESTful API katrs iesaistītais komponents tiek uzskatīts par resursu. Šiem resursiem varat piekļūt, izmantojot HTTP protokols metodes.

RESTful API ir iesaistīts serveris un klients. REST API klienti var piekļūt servera nodrošinātajiem resursiem un ar tiem manipulēt. Katram resursam ir atsevišķs URI vai globālais ID. Izmantojot URI vai globālo ID, mēs varam identificēt resursus RESTful API. URI nozīmē a Vienotais resursa identifikators . Resursu attēlošanai varat izmantot teksta, XML.JSON vai JSON formātus REST API.

RESTful tīmekļa pakalpojumu parasti izmanto mākoņpakalpojumu patērētāji, ļaujot tiem piekļūt un pārvaldīt tīmekļa pakalpojumus. REST API kalpo kā viena no vēlamākajām izvēlēm spēcīgas API izveidei. API, kas izveidots, izmantojot REST arhitektūru, ļauj lietotājiem pārvaldāmi mijiedarboties ar mākoņpakalpojumiem. Dažas no populārajām vietnēm, kuras API izveidei izmanto tīmekļa pakalpojumu RESTful, ir Amazon tīmekļa pakalpojumi (AWS), Twitter, LinkedIn un Google.

RESTful Web Service API darbība

Mēs esam novērojuši īsu RESTful tīmekļa pakalpojuma aprakstu. Tagad informējiet mūs par RESTful API darbību. RESTful API sadala katru darījumu starp divām lietojumprogrammām vairākos mazākos moduļos. Šeit darījums nozīmē datu vai informācijas apmaiņu. Katrs modulis satur būtiskāko informāciju par darījumu. Tādējādi izstrādātāji jūtas ērti un elastīgi, veidojot API jebkurai tīmekļa lietojumprogrammai.

Mūsdienās daudzi uzņēmumi, piemēram, Cloud Data Management Interface (CDMI), AmazonS3 utt., piedāvā savus īpašos modeļus API izstrādei. RESTful API tīmekļa pakalpojumā ir vairākas komandas, lai piekļūtu resursiem. Resursa attēlojums definē konkrēta resursa stāvokli noteiktā laika spiedogā.

HTTP metodes RESTful tīmekļa pakalpojuma API

RESTful tīmekļa pakalpojuma API izmanto HTTP protokolu, lai piekļūtu resursiem un ar tiem manipulētu. RESTful tīmekļa pakalpojumā tiek izmantotas četras primārās HTTP metodes: GET, PUT, POST, DELETE. Īsi pastāstiet mums par katru no šīm HTTP metodēm.

    GŪT:GET metode ļauj lietotājiem piekļūt RESTful API resursiem. Bet tos nevar mainīt vai manipulēt. Izmantojot GET metodi, var tikai lasīt resursus.PUT:HTTP PUT metode ļauj modificēt resursus vai mainīt to stāvokļus. Tas arī ļauj jums izveidot citu jaunu resursu.POSTĪT:Lai izveidotu jaunu resursu, varat izmantot POST metodi.DZĒST:Resursa dzēšanai tiek izmantota metode HTTP DELETE.

RESTful tīmekļa pakalpojuma API atbalsta vairākus datu formātus, piemēram, application/xml, application/json, application/x-www-form-urlencoded, application.x-web+xml un multipart/form-data.

RESTful API arhitektūras īpašības un ierobežojumi

Dr. Rojs Fīldings ir RESTful tīmekļa pakalpojuma API izstrādātājs. Tālāk ir norādītas dažas nozīmīgas RESTful API arhitektūras īpašības un ierobežojumi.

RESTful API rekvizīti

  1. RESTful API piedāvā augstu veiktspēju galalietotājiem. Kad lietotājs noklikšķina uz jebkuras saites, viņam vai viņai tiek nodrošināti tūlītēji rezultāti. Un izstrādātāji nodrošina lietotājiem visus pakalpojumus.
  2. Vēl viena RESTful API īpašība ir mērogojamība. RESTful API sniedz pakalpojumus regulāri, neskatoties uz lietotāju skaita pieaugumu vai samazināšanos.
  3. RESTful API ir vienota saskarne. Visi resursi tiek identificēti, izmantojot to attiecīgos URI. Tādējādi šī vienotā saskarne padara RESTful API vienkāršu.
  4. Nākamais īpašums ir modificējamība. Jebkuras izmaiņas sistēmā jānotiek viegli un ērti.
  5. RESTful API arhitektūra ir ļoti pārnēsājama un uzticama.

RESTful API arhitektūras ierobežojumi

Jebkuram RESTful tīmekļa pakalpojuma API ir jāievēro tālāk minētie seši arhitektūras nosacījumi.

  1. Pirmais RESTful tīmekļa pakalpojuma API arhitektūras ierobežojums ir tas, ka tai ir jāizmanto vienota saskarne. Visi RESTful API resursi ir jāidentificē, izmantojot to attiecīgos vienotos resursu identifikatorus (URI). Tiem ir jāpiekļūst un ar tiem jādarbojas, tikai izmantojot četras HTTP metodes: PUT, POST, GET un DELETE.
  2. Klientam un serverim RESTful API ir jābūt precīzi attēlotam. Klients apstrādā vienoto saskarni un pieprasījumu apkopošanu. No otras puses, serveris regulē drošību, piekļuvi datiem un darba slodzes pārvaldību. Serverī ir visi resursi, un klients pieprasa resursus no servera.
  3. Vēl viens RESTful tīmekļa pakalpojuma API arhitektūras ierobežojums ir bezvalsts darbības. Klientam un serverim RESTful API ir jāievēro bezstāvokļa funkcijas. Visas valsts pārvaldes darbības jāveic klienta pusē.
  4. Visām RESTful tīmekļa pakalpojuma API ir jāveic kešatmiņa. Ja tiek attēlots, ka kešatmiņa nav iespējama, tad tikai kešatmiņu nevajadzētu veikt.
  5. Konkrētas lietojumprogrammas arhitektūrai ir jāietver serveris vairākos slāņos. Vienā slānī nedrīkst būt nekāda informācija par citiem slāņiem, izņemot tā tiešo slāni.
  6. Parasti serveris nosūta klientam resursu statiskos attēlojumus XML vai JSON formātā. Ja nepieciešams, tai arī jāpārsūta izpildāmais kods klientam.

Nākamajā segmentā mēs uzzināsim, kā ģenerēt tīmekļa pakalpojumu, izmantojot HTTP metodes. Lietotāju pārvaldības izveidei izmantosim divas HTTP metodes GET un POST. Tālāk ir norādītas dažas būtiskas izmantotās funkcijas.

  1. Izmantojot HTTP GET metodi ar tukšu POST pamattekstu, mēs parādīsim sarakstu ar lietotājvārdiem. Ņemiet vienotu resursu identifikatoru kā /Lietotājs/Pakalpojums/lietotāji .
  2. Vēlāk mēs sarakstam pievienosim katra lietotāja informāciju. Šim nolūkam mēs izmantosim HTTP POST metodi ar JSON virkni POST pamattekstā. Izmantojiet URI kā /User/Service/addUser .
  3. Visbeidzot, mēs parādīsim informāciju par atsevišķiem lietotājiem, izmantojot HTTP GET metodi. Saglabājiet POST pamattekstu tukšu un izmantojiet URI kā /User/Service/getUser/:id .

Vides iestatīšana RESTful tīmekļa pakalpojumiem

Lai strādātu ar RESTful tīmekļa pakalpojumu, mēs izmantosim Džersijas ietvars . Šī sistēma ievieš standarta specifikāciju, ko sauc par JAX-RS 2.0 API. Izmantojot šo specifikāciju, mēs varam ģenerēt RESTful tīmekļa pakalpojumus. Pirms virzāmies uz Džersijas ietvaru, mēs iemācīsimies iestatīt Eclipse, Tomcat un JDK vidi jūsu datorsistēmā. Mēs esam izskaidrojuši visu trīs vides iestatīšanu sistēmā ar precīzām un vienkāršām darbībām.

Kā iestatīt Java izstrādes komplektu (JDK)?

The Java izstrādes komplekts (JDK) ir viena no galvenajām pakotnēm, ko izmanto Java koda palaišanai. JDK pakotne Java ļauj lietotājiem rakstīt Java programmas. Jums ir jālejupielādē šī pakotne ar nosaukumu JavaSE no šī vietne :

Pēc lejupielādes instalējiet to, izmantojot sniegtās vadlīnijas. Kad tas ir izdarīts, jums ir jānovērš vides mainīgie PATH un JAVA_HOME vietā, kur atrodas “java” un “javac”. Parasti “java” atrodas mapē java_install_dir/bin, un “javac” ir mapē “java_install_dir”.

Lai labotu PATH un JAVA_HOME vides mainīgos Windows XP, NT vai 2000 sistēmās, dodieties uz 'Mans dators, ar peles labo pogu noklikšķiniet uz tā un noklikšķiniet uz 'Properties'. Jūs pamanīsit cilni 'Papildu'. Noklikšķiniet uz tās. un vēlāk noklikšķiniet uz 'Vides mainīgie'. Mainiet PATH un JAVA_HOME vides mainīgos ar 'java' un 'javac' atrašanās vietu sistēmā un noklikšķiniet uz pogas 'OK'. Jūsu vides mainīgā iestatīšana ir pabeigta.

Linux un Solaris sistēmām veiciet tālāk norādītās darbības. Apsveriet, ka izmantojat C apvalku un esat lejupielādējis JavaSE failu mapē /usr/local/jdk1.7.9_75. Atjauniniet failu “.cshrc”, izmantojot tālāk norādītās komandas:

|_+_|

Kā iestatīt Eclipse IDE?

Pirmā lieta, kas jums jāievēro, ir lejupielādēt jaunākos Eclipse bināros failus no tā oficiālās vietnes vietne .

Pēc jaunāko Eclipse bināro failu lejupielādes ievietojiet tos pareizā vietā savā sistēmā. Apsveriet, ka esam atraduši Eclipse bināros failus Windows sistēmās C:eclipse. Mēs atradīsim Eclipse bināros failus vietā /usr/local/eclipse Linux vai Unix sistēmai. Kad esat to ievietojis pareizajā vietā, nofiksējiet mainīgo PATH vietā, kur glabājāt Eclipse bināros failus.

Lai palaistu Eclipse, veiciet dubultklikšķi uz faila eclipse.exe vai arī varat ierakstīt tālāk norādīto komandu Windows komandu uzvednē.

|_+_|

Ja izmantojat Eclipse operētājsistēmā Linux vai Solaris, izmantojiet tālāk norādīto komandu, lai to palaistu.

|_+_|

Ja viss norit labi un iestatīšana ir pareiza, lietojumprogramma tiek startēta un tiek parādīts koda rakstīšanas ekrāns.

Kā iestatīt Apache Tomcat?

Šeit mēs sapratīsim, kā instalēt un iestatīt jūsu sistēmas vidi Apache Tomcat. Pirmkārt, jums ir jālejupielādē jaunākā Tomcat versija vietne .

Pēc šīs jaunākās Tomcat versijas lejupielādes novietojiet to piemērotā vietā savā sistēmā.

Apsveriet, ka Tomcat Apache fails tika ievietots Windows sistēmā vietā C:apache-tomcat-7.0.59. Mēs ievietosim Tomcat Apache failu /usr/local/apache-tomcat-7.0.59 vietā Linux vai Solaris sistēma. Pēc tam vides mainīgais CATALINA_HOME ir jālabo vietā, kur glabājāt lejupielādēto Tomcat Apache failu.

Varat startēt Tomcat lietojumprogrammu savā Windows sistēmā, noklikšķinot uz faila startup.bat. Lietojumprogrammas Tomcat startēšanai varat izmantot arī šo komandu.

|_+_|

vai

|_+_|

Ja izmantojat lietojumprogrammu Tomcat operētājsistēmā Linux vai Solaris, lai to palaistu, ir jāievēro kāda no tālāk norādītajām komandām.

|_+_|

vai

|_+_|

Kad viss ir kārtībā, parādās ekrāns, kurā varat ierakstīt kodu un palaist to. Visas Tomcat noklusējuma lietojumprogrammas būs pieejamas, apmeklējot tālāk norādīto vietne :

Pilnīga informācija par Tomcat konfigurāciju un tajā esošajām programmām ir pieejama vietnē vietne .

Ja vēlaties apturēt Tomcat lietojumprogrammu Windows sistēmā, ierakstiet kādu no šīm komandām.

|_+_|

vai

|_+_|

Lai izslēgtu Tomcat lietojumprogrammu, varat ierakstīt jebkuru no divām tālāk minētajām komandām.

|_+_|

vai

|_+_|

Kā iestatīt Džersijas Framework bibliotēkas?

Pēc JDK, Eclipse un Tomcat Apache iestatīšanas varat doties uz Jersey Framework iestatīšanu. Lai lejupielādētu Džersijas ietvaru, secīgi izpildiet tālāk sniegtās vadlīnijas.

  1. Pirmkārt, jums ir jāizlemj par operētājsistēmu, piemēram, Windows vai Unix, lai tajā instalētu Jersey Framework. Ja izvēlaties Windows sistēmu, lejupielādējiet .zip failu un Unix sistēmām lejupielādējiet .tz failu.
  2. Nākamais solis ir lejupielādēt jaunākos Jersey Framework bināros failus no tālāk esošās vietne .
  3. Pēc .zip faila lejupielādes Windows sistēmā tas ir jāizpako. Pieņemsim, ka esat lejupielādējis failu jaxrs-ri-2.17.zip. Pēc šī faila izsaiņošanas tas nodrošina direktoriju struktūru vietā E:jaxrs-ri-2.17jaxrs-ri.
  4. Visas Džersijas bibliotēkas atradīsies direktorijā C:jaxrs-ri-2.17jaxrs-rilib, un atkarības atradīsies C:jaxrs-ri-2.17jaxrs-riext.
  5. Vēlāk labojiet mainīgo CLASSPATH vietā, kur atrodas jūsu Džersijas bibliotēkas, C:jaxrs-ri-2.17jaxrs-rilib direktorijā. Atcerieties, ka, ja izmantojat lietojumprogrammu Eclipse, Jersey Framework mainīgais CLASSPATH nav jālabo.

Tagad jūs zināt, kā iestatīt vidi RESTful tīmekļa pakalpojumam. Izpildiet visas iepriekš minētās darbības, un jūs būsiet gatavs rakstīt Džersijas piemēru.

RESTful pirmais piemērs — Džersija (JAX-RS)

Pēc Java, Tomcat Apache, Eclipse un Jersey Framework vides iestatīšanas varat sākt veidot tīmekļa lietojumprogrammas, izmantojot RESTful API. Novērosim vienu piemēru Džersijas ietvarā, lai iegūtu precīzu priekšstatu par programmas rakstīšanu RESTful API. Lai programmu veiksmīgi palaistu, secīgi ir jāveic tālāk minētās darbības.

1. darbība: izveidojiet Java projektu

Izveidojiet Java projektu, izmantojot Eclipse IDE. Šeit mēs izveidosim dinamisku tīmekļa projektu. Tālāk ir norādītas darbības, lai izstrādāt dinamisko tīmekli Projekts Eclipse IDE.

  1. Palaidiet lietojumprogrammu Eclipse no savas sistēmas. Noklikšķiniet uz opcijas Fails, noklikšķiniet uz Jauns un atlasiet Jauns projekts.
  2. Vēlāk vedņu sarakstā izvēlieties vedni Dynamic Web Project.
  3. Pēc vedņa izvēles piešķiriet savam projektam vēlamo nosaukumu, teiksim FirstRestPiemērs .
  4. Saglabājot projekta nosaukumu vedņa logā, dodieties uz Project Explorer, un jūs tur pamanīsit sava projekta nosaukumu.

2. darbība: pievienojiet nepieciešamās bibliotēkas

Pēc projekta izveides un tā saglabāšanas ar noteiktu nosaukumu jums projektam jāpievieno Jersey Framewoek bibliotēkas un atkarības. Mēs esam uzskaitījuši jar failu nosaukumus, kas jākopē izveidotā projekta direktorijā WEB-INF/lib no Jersey zip mapes.

  • jaxrs-ri-2.17jaxrs-riapi
  • jaxrs-ri-2.17jaxrs-riext
  • jaxrs-ri-2.17jaxrs-rilib

Lai savam projektam pievienotu iepriekš minētos jar failus, ar peles labo pogu noklikšķiniet uz sava projekta, FirstRestPiemērs . Noklikšķiniet uz opcijas Build Path un pēc tam dodieties uz Konfigurēt Build Path. Šeit jūs redzēsit logu, kurā parādīts Java Build Path. Turklāt izvēlnē Bibliotēkas redzēsit pogu Pievienot JAR. Pievienojiet jar failus direktorijā WEB-INF/lib.

3. darbība. Izveidojiet avota failus

Mēs esam izveidojuši savu projektu ar nosaukumu FirstRestExample Eclipse IDE. Tagad mums ir jāizveido šī projekta avota faili. Lai izveidotu avota failus, vispirms ir jāizveido pakotne, piemēram, com.restexample. Dodieties uz pakotņu pārlūku un ar peles labo pogu noklikšķiniet uz opcijas src. Jūs atradīsit opciju Jauns. Noklikšķiniet uz tā un vēlāk noklikšķiniet uz opcijas Package.

Šeit jums ir jāizveido trīs dažādi faili com.restexample pakotnē. Nosauksim failus kā EmployeeService.java, Employee.java un EmployeeDao.java. Trīs failos, ko izveidojāt pakotnē com.restexmaple, un jums ir jāieraksta kods. Vispirms mēs ierakstīsim kodu Employee.java failā.

Darbinieks.java

|_+_|

DarbinieksDao.java

|_+_|

EmployeeService.java

|_+_|

Iepriekš minētajā EmployeeService.java failā jums jāatceras, ka tīmekļa pakalpojuma ceļa norādīšanai esam izmantojuši anotāciju @Path. Turklāt, izmantojot @Path anotāciju, esam arī izveidojuši ceļu konkrētai tīmekļa pakalpojuma metodei.

4. darbība. Izveidojiet Web.xml failu

Visbeidzot, mums ir jāizveido Web.xml fails. Web.xml faila galvenais mērķis ir piešķirt Jersey Framework servletu izstrādātajai lietojumprogrammai.

web.xml

|_+_|

5. darbība: kompilējiet un palaidiet programmu

Kad esat uzrakstījis visus iepriekš minētos četrus failus, tagad esat gatavs apkopot reklāmas palaišanas programmu. Visu iepriekš minēto programmu rakstīšanai esam izmantojuši Eclipse IDE. Tāpēc mums ir jāeksportē iepriekš minētā lietojumprogramma kara failā. Vēlāk mums ir jāapkopo un jāpalaiž šis kara fails Tomcat Apache rīkā.

Tālāk mēs parādīsim, kā izveidot kara failu Eclipse IDE.

  • Eclipse IDE atveriet opciju Fails, noklikšķiniet uz Eksportēt -> Mēs -> kara fails. Tur jums ir jāizvēlas savs projekts FirstRestPiemērs un mērķa mapi.
  • Vēlāk jums ir jāatrod fails FirstRestExample.war mapē Tomcat instalācijas direktorijs opcijas webapps direktorijs . Un palaidiet Tomcat lietojumprogrammu.

Pēc kara faila ievietošanas Tomcat tīmekļa lietotņu direktorijā varat palaist lietojumprogrammu. Mēs izmantosim Chrome paplašinājumu, Pastnieks , lai pārbaudītu mūsu lietojumprogrammas. Nākamais solis ir visu darbinieku ievietošana PASTMANĪ. Šim nolūkam izmantojiet zemāk esošo koda rindiņu

|_+_|

Lai izmantotu iepriekš minēto koda rindiņu Tomcat Apache, izmantojiet HTTP GET metodi. Šeit ir gatava jūsu pirmā tīmekļa pakalpojuma lietojumprogramma.

Ziņojumi RESTful Web Service API

RESTful API klients un serveris sazinās viens ar otru, izmantojot HTTP protokolu. Saziņa notiek, kad klients nosūta serverim HTTP pieprasījumu un serveris klientam atbild ar HTTP atbildi. Saziņa starp klientu un serveri, izmantojot HTTP protokolu, tiek saukta par ziņojumapmaiņu. Viens HTTP ziņojums satur ziņojuma datus un metadatus. Metadati ir ziņojuma informācija.

Tagad apskatīsim HTTP pieprasījumu un HTTP atbildi RESTful tīmekļa pakalpojuma API.

HTTP pieprasījums

Klients novirza HTTP pieprasījumu uz serveri. Tas pieprasa resursus no servera. HTTP pieprasījumā, darbības vārdā, URI, HTTP versijā, pieprasījuma galvenē un pieprasījuma pamattekstā ir iekļautas piecas galvenās daļas. Šis ir HTTP pieprasījuma formāts.

ATPŪTAS

Īsi aprakstīsim katru HTTP pieprasījuma daļu.

    Darbības vārds:Darbības vārds HTTP pieprasījumā ietver četras HTTP metodes: GET, POST, PUT un DELETE.Vienotais resursa identifikators (URI):Nākamā HTTP pieprasījuma daļa ir vienotais pieprasījuma identifikators (URI). URI unikāli identificē katru resursu.HTTP versija:Trešā HTTP pieprasījuma daļa ir HTTP versija. Piemēram, HTTP v1.1, kur v1.1 ir versija.Pieprasījuma galvene:Pieprasījuma galvenē ir ziņojuma metadati. Pieprasījuma galvenē esošie metadati atrodas atslēgas un vērtības pārī. Tas var apkopot informāciju, piemēram, klienta veidu, kešatmiņas iestatījumus, ziņojuma formātu utt.Pieprasījuma struktūra:Pieprasījuma pamatteksts HTTP pieprasījumā nozīmē resursa attēlojumu.

HTTP atbilde

Kad serveris saņem HTTP pieprasījumu no klienta, tas klientam atbild ar HTTP atbildi. HTTP atbilde ietver četras nozīmīgas daļas: atbildes kodu, HTTP versiju, atbildes galveni un atbildes pamattekstu. Tālāk ir norādīts HTTP atbildes formāts.

img 617dd1cb36593

Apspriedīsim katru HTTP atbildes daļu šeit.

    Atbildes kods:

Atbildes kods tiek saukts arī par statusu. Kad klients pieprasa resursu no servera, atbildes kods parāda tā statusu. Ja statuss ir 404, resurss nav atrasts. Ja atbilde ir laba, statuss ir 200.

    HTTP versija:

HTTP atbildes otrā daļa ir HTTP versija. Piemēram, HTTP v1.1, kur v1.1 ir versija.

    Atbildes galvene:

Galvenē ir HTTP atbildes ziņojuma metadati atslēgas un vērtības pāra veidā. Tajā var būt tāda informācija kā servera veids, satura garums, atbildes dati utt.

    Atbildes struktūra:

Atbildes struktūra ietver resursa attēlojumu.

Iepriekš minētajā RESTful tīmekļa pakalpojuma API piemērā mēs esam ievietojuši http://localhost:8080/FirstRestExample/rest/EmployeeService/employees .

Programmā POSTMAN, izmantojot HTTP GET metodi. Kad pieprasījums tiek nosūtīts, izmantojot GET metodi, mēs saņemsim XML ziņojumu šādi. Lai skatītu XML atbildi, jums jānoklikšķina uz pogas Priekšskatījums.

|_+_|

Resurss RESTful Web Service API

RESTful tīmekļa pakalpojuma API katrs saturs tiek uzskatīts par resursu. Klients pieprasa resursu, un serveris nodrošina piekļuvi konkrētam klienta pieprasītam resursam. Pēc piekļuves piešķiršanas klients var modificēt vai mainīt resursu. Resurss var būt HTML lapas, attēli, teksta faili vai biznesa dati.

Katram resursam REST arhitektūrā ir unikāls numurs. Šis unikālais numurs tiek saukts par vienoto resursu identifikatoru (URI). Parasti resurss REST arhitektūrā tiek attēlots, izmantojot XML vai JSON formātu. Tagad aplūkosim resursu attēlojumu REST arhitektūrā.

Resursu attēlojums REST arhitektūrā

Resursi REST arhitektūrā ir attēloti XML vai JSON formātā. Varat apstrādāt REST resursu kā entītiju datu bāzē vai objektu orientētā programmēšanā. Pirmkārt, resurss tiek identificēts, izmantojot tā vienoto resursu identifikatoru (URI). Vēlāk tiek izlemts par standarta formātu resursa attēlošanai. Kad klients pieprasa resursu, serveris pārsūta resursu klienta norādītajā formā.

Iepriekšējā RESTful piemērā kā resurss ir “darbinieks”. Apskatīsim, kā “darbinieka” resurss tiek attēlots, izmantojot XML veidlapu.

|_+_|

Tagad mēs attēlosim to pašu “darbinieka” resursu JSON formā.

|_+_|

REST arhitektūrā jūs varat attēlot resursus jebkurā formātā. RESTful tīmekļa pakalpojuma API ir gadījumi, kad viens klients pieprasa resursu XML formā, bet otrs klients pieprasa to pašu resursu JSON formā. Vienīgais nozīmīgais resursa attēlojumā ir tas, ka tam jābūt attēlotam tādā formātā, lai klients to varētu saprast.

Ja resurss ir attēlots jebkurā formātā, ir jāņem vērā daži priekšnoteikumi. Resursa formātam jābūt saprotamam, pilnīgam un savienojamam. Klientam un serverim REST arhitektūrā ātri jāatzīst resursa attēlojuma formāts. Jebkurā veidlapā, ko izvēlaties resursa attēlošanai, tai ir jāsniedz pilnīga informācija par resursiem. Resursu attēlojuma formātam ir jāatļauj saite uz jebkuru citu resursu.

Lielākā daļa izstrādātāju izmanto JSON vai XML formu, lai attēlotu resursus REST arhitektūrā. Mūsdienās JSON vai XML datu modificēšanai ir pieejami daudzi rīki.

Adresēšana RESTful Web Service API

Adresēšana REST arhitektūrā nozīmē serverī esošo resursu atrašanu. Mēs zinām, ka resursi tiek identificēti pēc to vienotajiem resursu identifikatoriem (URI). Vienotā resursa identifikatora formāts ir šāds:

:////

URI serverī atrod noteiktu resursu. Iepriekšējā piemērā URI ir

|_+_|

Iepriekš minētajam URI mēs izmantojām HTTP GET metodi.

Jums varētu rasties jautājums par to, kā tiek ģenerēts URI. Mēs sniegsim jums dažus vienkāršus noteikumus, veidojot URI jebkuram resursam REST arhitektūrā.

  1. Definējot resursus savos tīmekļa pakalpojumos, vienmēr izmantojiet daudzskaitļa formu. Iepriekš minētajā RESTful tīmekļa lietojumprogrammas piemērā esam izveidojuši resursu “lietotāji”.
  2. Jums ir jāpārliecinās, ka jūsu resursa nosaukumā nedrīkst būt atstarpes vai speciāls simbols, piemēram, %, $, @ utt. Resursa nosaukumā varat izmantot defisi (-) vai pasvītrojumu (_). Piemēram, pareizais resursa nosaukums ir efektīvie_darbinieki, nevis efektīvie@darbinieki.
  3. Tīmekļa pakalpojumā RESTful URI nav reģistrjutīgi. Tomēr vienmēr labāk ir saglabāt URI ar mazajiem burtiem.
  4. Noteikti izmantojiet kādu no HTTP darbības vārdiem vai metodēm, lai veiktu darbības ar resursiem. Iepriekš minētajā RESTful lietojumprogrammā mēs izmantojām HTTP GET metodi.
  5. URI ir jāpublicē publiski, jo tīmekļa pakalpojumi ir publiski pakalpojumi.

Apskatīsim laba un slikta URI piemēru darbinieka ielādei.

Slikts URI

|_+_|

Labs URI

|_+_|

Java (JAX-RS) RESTful Web Service API

JAX-RS nozīmē Džakartas RESTful Web Services. Agrāk tas bija pazīstams kā Java API RESTful Web Services. JAX-RS ir uz Java balstīta API, kas lietotājiem ļauj izveidot tīmekļa pakalpojumus, kuru pamatā ir REST arhitektūra. Jaunākā JAX-RS versija ir 2.0, kas izlaista 2013. gadā. Šajā uz Java balstītajā API tiek izmantotas Java SE 5 anotācijas, padarot tīmekļa pakalpojumu izstrādi un izvietošanu vieglāk pārvaldāmu.

JAX-RS specifikācijas

Tālāk ir norādītas dažas parasti izmantotās anotācijas, lai kartētu resursu kā tīmekļa pakalpojuma resursu.

    @GŪT:Šī JAX-RS specifikācija tiek izmantota resursa ielādei.@Path:@Path nozīmē tīmekļa pakalpojumā iekļautās klases vai metodes ceļu.@DELETE:@DELETE resurss dzēš noteiktu resursu.@POST:Iepriekš minētā JAX-RS specifikācija rada jaunu resursu.@PUT:Šī JAX-RS specifikācija tiek izmantota esoša resursa atjaunināšanai.@Patērē:@Consumes JAX-RS specifikācija atspoguļo HTTP pieprasījuma veidu.@HEAD:Vēl viena JAX-RS HTTP metode ir @HEAD, kas piedāvā informāciju par to, vai metode ir pieejama vai nav.@QueryParam:Iepriekš minētā specifikācija tiek izmantota, lai apvienotu vaicājuma parametru un parametru, kas tiek nodots metodei.@Ražo:Specifikācija @Produces parāda HTTP atbildes veidu.@PathParam:Iepriekš minētā JAX-RS specifikācija tiek izmantota, lai kombinētu ceļa vērtību ar metodei nodoto parametru.@CookieParam:@CookieParam apvieno sīkfailu ar parametru, kas nodots metodei.@MatrixParam:Šī JAX-RS specifikācija apvieno HTTP matricas parametru ar parametru, kas tiek nodots metodei.@FormParam:Veidlapas vērtība tiek apvienota ar parametru, kas tiek nodots metodei, izmantojot @FormParam.@HeaderParam:HTTP galvene ir saistīta ar parametru, kas nodots metodei, izmantojot @HeaderParam.@Konteksts:@Context nozīmē resursa kontekstu.@DefaultValue:Iepriekš minētā JAX-RS specifikācija piešķir metodei nodoto parametru ar noklusējuma vērtību.

Bezvalstniecība un RESTful Web Service API kešatmiņa

Bezvalstniecība

Bezvalstniecība nozīmē, ka serverī nedrīkst būt klienta statuss. Klients nosūta savu kontekstu serverim. Saņemot kontekstu no klienta, serveris saglabā kontekstu un izmanto to turpmākiem klienta pieprasījumiem. Piemēram, klients nosūta serverim sesijas identifikatoru. Tādējādi serveris to saglabā sesiju identificēšanai.

Plusi:

Tālāk ir norādītas dažas būtiskas bezvalstniecības priekšrocības RESTful tīmekļa pakalpojuma API.

  • Izmantojot bezvalstniecības īpašumu, tīmekļa pakalpojums apstrādā katru metodes pieprasījumu atsevišķi.
  • Serveris neglabā klienta stāvokli vai iepriekšējās darbības. Tādējādi tas padara lietojumprogrammas dizainu vienkāršāku.
  • RESTful tīmekļa pakalpojumi apstrādā praktiski, izmantojot HTTP protokolus.

Mīnusi:

  • Tā kā serveris nesatur klienta stāvokli, tīmekļa pakalpojums pieprasa vairāk datu no katra klienta pieprasījuma.

Kešatmiņa

Klientam ir daži resursi no servera atbildes ziņā. Tāpēc klientam nav atkārtoti jāpieprasa serveris vienam un tam pašam resursam. To sauc par kešatmiņu. Pamatojoties uz servera piedāvāto konkrēta resursa kešatmiņas informāciju, klients izlemj, vai saglabāt resursu kešatmiņā uz noteiktu laiku vai nekad to neglabāt.

Ir kešatmiņas kontroles galvene, kas sastāv no piecām nozīmīgām daļām: publiska, privāta, maksimālais vecums, bez kešatmiņas/no-veikala un obligāti jāapstiprina. Tālāk apskatīsim katras daļas aprakstu.

    Publisks:Jebkurš komponents var kešatmiņā saglabāt publisko resursu.Privāts:Nevienam nav atļauts saglabāt resursu kešatmiņā. Tikai klients un serveris var saglabāt resursu kešatmiņā.maksimālais vecums:Maksimālā vecuma elements tiek aprēķināts sekundēs. Tas norāda, cik sekundes ir derīga resursa kešatmiņa. Kad ir beidzies maksimālā vecuma ierobežojuma laiks, klientam vēlreiz ir jāpieprasa resurss.bez kešatmiņas/bez veikala:Klients nevar saglabāt resursu kešatmiņā.atkārtoti jāapstiprina:Serverim ir atkārtoti jāvalidē resurss, kad beidzas maksimālais kešatmiņas saglabāšanas laiks.

Lai konfigurētu klienta kešatmiņu, servera atbilde ietver šādas galvenes:

    Datums:Resursa izveides datums un laiks ir norādīti galvenē Datums.Kešatmiņas kontrole:Kešatmiņas vadības galvene uzrauga kešatmiņu.Vecums:Vecums tiek attēlots sekundēs. Tas ir laiks, kad resurss tiek saņemts no servera.Pēdējās izmaiņas:Šajā galvenē tiek parādīts datums un laiks, kad resurss tika atjaunināts pēdējo reizi.Beidzas:Šī galvene norāda uz kešatmiņas derīguma termiņu un laiku.

HTTP metodes un to darbības RESTful API

Iepriekšējā sadaļā mēs esam redzējuši HTTP metodes un to lietojumus. Šis segments ievēro HTTPS metodes, to darbības un darbības veidu REST arhitektūrā.

    GŪT:

GET HTTP metode iepriekš minētajā RESTful lietojumprogrammas piemērā tiek izmantota darbinieku saraksta iegūšanai. Mēs izmantojām URI GET metodei, kā norādīts tālāk.

|_+_|

HTTP GET metode iegūst darbinieku sarakstu. Tādējādi tam ir tikai lasāms darbības veids.

Id 1 darbinieka izgūšanai varam izmantot arī metodi GET. URI 1. ID darbinieka izgūšanai ir:

|_+_|

Šī darbība ir arī tikai lasāma.

    POSTĪT:

Mūsu RESTful lietojumprogrammas piemērā esam izmantojuši HTTP POST metodi, lai ievietotu darbinieku ar 2. ID. URI darbinieka ievietošanai 2. ID ir:

|_+_|

Iepriekš minētais darbības veids nav idempotens.

    DZĒST:

Mēs varam izmantot HTTP DELETE metodi darbinieka ar Id 1 dzēšanai. Tālāk ir norādīts URI darbinieka ar Id 1 dzēšanai.

|_+_|

DELETE darbība ir idempotenta tipa.

    GALVA:

HEAD metode REST arhitektūrā tiek izmantota HTTP galvenes atgriešanai. Tas nenodrošina HTTP pamattekstu. Iepriekš minētajam darbinieka piemēram mēs varam izmantot tālāk norādīto URI.

|_+_|

Šī darbība ir tikai lasāma.

    PUT:

Iepriekš minētajā REST Employee lietojumprogrammā mēs varam izmantot HTTP PUT metodi darbinieka atjaunināšanai ar 2. ID. Izmantojiet tālāk norādīto URI, lai atjauninātu darbinieku ar ID 2.

|_+_|
    IESPĒJAS:

HTTP OPTIONS metodes ļauj uzskaitīt visas tīmekļa pakalpojumā atbalstītās darbības. Šai darbībai varat izmantot šādu URI.

|_+_|

Operācija OPTIONS ir tikai lasāma.

No iepriekšminētajām HTTP metodēm un to darbībām mēs varam secināt, ka GET darbība ir tikai lasāma. DELETE un PUT darbības ir idempotenta tipa. Šo divu darbību rezultāts paliek nemainīgs, pat ja tās tiek veiktas vairākas reizes.

Secinājums

RESTful API ir uz REST arhitektūru balstīta API, kas izmanto HTTP metodes, lai piekļūtu un sakārtotu datus. Visi dati REST arhitektūrā tiek uzskatīti par resursu. Ja vēlaties apgūt RESTful API, šī ziņa ir pilnīga rokasgrāmata jums.

Mēs esam redzējuši, kas ir RESTful tīmekļa pakalpojuma API, kā tā darbojas, REST arhitektūrā izmantotās HTTP metodes un REST arhitektūras rekvizīti un ierobežojumi. Vēlāk mēs esam attēlojuši RESTful API vides iestatījumus. RESTful API vides iestatījumos esam iestatījuši JDK vidi, Tomcat Apache, Eclipse IDE un Jersey Framework. Šajā apmācībā varat apskatīt vienkāršo RESTful lietojumprogrammas piemēru.

Tālāk mēs esam apskatījuši vairākus RESTful tīmekļa pakalpojuma API elementus, piemēram, ziņojumus, bezpavalstniecību, kešatmiņu, resursus un adresēšanu. Mēs arī apspriedām Java JAX-RS un tā specifikācijas. Visbeidzot, mēs esam redzējuši HTTP metodes un to darbības ar URI un darbības veidu.