Noile formate de transfer de informații ne obligă să schimbăm modul în care gândim despre aplicațiile noastre, în fiecare zi depindem mai mult de Internet și, de asemenea, de transmiterea datelor între locuri îndepărtate și diferite tehnologii.
Integrarea diferitelor tehnologii a fost întotdeauna o provocare în trecut, dar cu noile standarde și puterea pe care protocolul a luat-o HTTP acum este mult mai ușor, deoarece nu depindem de integrarea aplicațiilor, dar fiecare aplicație are o interfață web pentru a-și dicta datele.
În Java de multe ori va trebui să accesăm informații pe care le au sau le generează alte aplicații și, prin urmare, nu putem neglija aspectul cunoașterii modului de a face conexiuni dintr-o aplicație Java la rețea. Dar nu numai către rețele, trebuie să știm și să facem clienți de servicii web chiar dacă este într-un mod de bază, deoarece cu aceasta ne vom asigura că nu vom fi izolați în mediul nostru.
Ce sunt serviciile web? Servicii web Acestea sunt aplicații găsite pe servere care au acces la o rețea, acestea pot fi în orice limbă sau tehnologie, totuși toată comunicarea cu „lumea exterioară” este gestionată prin HTTP și metodele sale, GET, POST, PUT, DELETE, etc..
ConexiuniInteresantul acestui tip de aplicație este posibilitatea de a face conexiuni între tehnologii total diferite, de exemplu putem avea un serviciu web scris în Piton să ne ducă inventarul unei fabrici și apoi în aplicația noastră din Java ne conectăm la acesta pentru a cunoaște cantitățile unui produs.
O astfel de ușurință este ceea ce le-a catapultat adoptarea rapidă în ultimii ani și a făcut standard să ofere astfel de instrumente atunci când vine vorba de sisteme și aplicații de afaceri. Chiar și aplicații personale, cum ar fi bloguri sau forumuri, oferă Servicii web pentru a facilita generarea de aplicații mobile și că totul rămâne în același ecosistem.
După ce am văzut deja un pic despre subiectul serviciilor web, să vedem cum sunt clasificate.
Servicii REST
Aceste tipuri de servicii permit transmiterea datelor prin intermediul HTTP, folosind doar metodele acestui protocol, în general, comunicarea necesită doar trimiterea de date fie prin formulare, fie prin JSON, unii chiar primesc până la XML.
Este cel mai popular moment, deoarece construcția clienților pentru consum este foarte simplă și nu necesită multe preparate suplimentare. Pur și simplu, astfel încât clientul nostru să poată lansa o solicitare OBȚINE catre unul Url a serviciului putem începe să îl utilizăm sau să-l consumăm, deoarece este cunoscută și acțiunea de a obține date.
Servicii SOAP
Serviciul SĂPUN este mult mai vechi decât ODIHNĂ, și până acum câțiva ani a fost modul standard de realizare a aplicațiilor Servicii web, construcția sa necesită respectarea unor protocoale în special și este necesar să se genereze un fișier XML numit WSDL, unde sunt definite metodele pe care clientul le poate accesa.
Datorită complexității ridicate a pregătirii clienților pentru a consuma acest tip de servicii, popularitatea sa a scăzut, motiv pentru care majoritatea noilor tehnologii nu o iau în considerare. Cu toate acestea, există încă multe servicii care există în lumea tehnologică și care sunt gestionate în cadrul acestei modalități, așa că, chiar dacă este în uz, este totuși necesar să știm cum să îl folosim.
Complexitatea acestui tip de serviciu constă în pregătirea diferitelor XML, și urmați standardele în conformitate cu platformele până la scrisoare, acest tip de motiv este ceea ce îl face dificil și, prin urmare, dezvoltatorii au migrat către ODIHNĂ.
Creați un program care se conectează utilizând TCP
Întrucât am citit și am analizat puțin mai amănunțit ceea ce reprezintă partea teoretică a ceea ce sunt Servicii web, vom începe partea practică a acestui tutorial făcând un exercițiu de bază care ne va ajuta să înțelegem fluxul de lucruri.
Vom face o conexiune simplă de la aplicația noastră prin rețea folosind TCP cu o echipă care este accesibilă și disponibilă în aceasta, va trebui să știm adresa dvs. IP și un port disponibil și în afara restricțiilor diferitelor firewall-uri.
CerințeÎn primul rând vom solicita pachetul java.net.Socket care ne oferă o serie de instrumente care ne vor face viața mai ușoară prin stabilirea conexiunilor, evident exemplul pe care îl prezentăm este foarte de bază, dar ne oferă baza pentru a putea crea lucruri dincolo de cerințele noastre.
Vom crea un program care încearcă să se conecteze la o mașină printr-un anumit port, totuși acest program va evalua, de asemenea, dacă a apărut o eroare sau orice complicație în timpul procesului de conectare, cu aceasta putem acționa cu sârguință și nu aștepta o fatală fail Să ne uităm la codul pentru acest exemplu:
import java.net.Socket; import java.net.UnknownHostException; import java.net.NoRouteToHostException; import java.net.ConnectException; public class ConnectionTest {public static void main (String [] argv) {String server = argv.length = = 1? argv [0]: "localhost"; port int = 80; try (Socket sock = new Socket (server, port)) {System.out.println ("- Conexiune reușită la:" + server + "-"); } catch (UnknownHostException e) {System.err.println (server + "Server necunoscut"); întoarcere; } catch (NoRouteToHostException e) {System.err.println (server + "Out of scope"); întoarcere; } catch (ConnectException e) {System.err.println (server + "Conexiunea refuzată"); întoarcere; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); întoarcere; }}}Începem prin a importa pachetul java.net.Socket cu aceasta vom avea clasa Priză care este cea pe care o vom folosi mai târziu pentru a stabili conexiunea, dacă nu îi transmitem un argument atunci când executăm programul, acesta se va conecta direct la computerul nostru, în acest caz indicăm portul 80, dar poate fi altul.
Plasăm crearea instanței Priză într-un bloc încearcă să prinzi acest lucru ne permite să evaluăm excepțiile în cazul în care conexiunea nu reușește în loc să oprească brusc programul. În cele din urmă, avem diferite blocuri de captură, fiecare cu o excepție diferită, pentru a ne oferi o idee despre ceea ce a mers prost.
Pentru ca excepțiile să funcționeze, am văzut că la început am importat pachetul java.net pe care o vom folosi în acest exemplu, acum să vedem cum arată toate acestea când rulăm programul nostru. Când ne executăm programul, să vedem în imaginea următoare cum am putut accesa cu succes routerul nostru Wifi și al nostru gazdă locală:
Client pentru un serviciu REST
În acest exemplu, vom crea un mic client de servicii web care se va conecta la un server ODIHNĂ, pentru aceasta avem nevoie doar de un server care să ne dea un răspuns la metodă OBȚINE de HTTP, de aceea putem folosi freegeoip.net care, în funcție de ceea ce trecem prin URL, poate returna un JSON cu date de pe orice pagină web pe care o dorim.
Să vedem codul pe care l-am făcut:
import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; public class ClientRest {public static void main (String [] args) aruncă Excepție {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {Linia șir; while ((line = is.readLine ())! = null) {System.out.println (line); }}}}Primul lucru pe care îl facem este să importăm clasele Url Da Conectare URL, acestea ne permit mai întâi să convertim un șir într-un URL care poate fi interpretat de Java și în al doilea rând, faceți conexiunea corectă. Apoi importăm două biblioteci de clase care ne permit să manipulăm datele pe care urmează să le primim ca răspuns de la serviciul web.
În cele din urmă, ne conectăm la serviciul web al freegeoip.netÎn acest caz îi transmitem orice pagină despre care știm că există, în acest fel putem obține un rezultat, apoi stocăm răspunsul într-un buffer și apoi îl citim și îl trecem la un obiect String, în cele din urmă imprimăm conținutul și vom obține ceva de genul a ceea ce vedem în următoarea imagine:
MARI
Desigur, aceasta este o abordare simplă pentru a putea înțelege cum funcționează serviciile web, deoarece nu acoperă trimiterea de parametri de la clientul nostru, dar pentru aceasta acestea pot fi documentate pe Apache HttpClient, care vă poate oferi instrumente superioare în ceea ce privește consumul acestui tip de servicii web, pe care le lăsăm ca o sarcină.
Cu aceasta am terminat acest tutorial, am construit câteva programe care ne ajută să mergem pe drumul cel bun pentru a putea stăpâni Servicii webCu aceasta vedem deja cum mintea noastră va începe cu siguranță să-și imagineze cele mai bune utilizări ale acestor instrumente în aplicațiile noastre și astfel să facă lucrurile mult mai mari.
V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv