Peb qhov Web site RESTful hauv Java

RESTful web service

RESTful web qhov kev pab hauv Java

Txheej txheem cej luam

ReSTful cov kev pab cuam tau hloov li cas cwj pwm xws li developers thiab lawv integrators ua hauj lwm. Developers xav tau ib qhov kev pab uas tso cai rau kev pauv cov xov xwm seamlessly; yus pom, scalable thiab yooj yim. Tus sawv cev rau lub xeev hloov los yog kev soj ntsuam tag nrho cov kev pab cuam uas muaj tag nrho cov peev xwm. NROG SO, Tej zaum yuav muaj kev pab kom lawv muaj website uas ua rau hauv Internet. qhov tseeb, Feem ntau cov neeg zov me nyuam xws li cov Amazon Web Services (AWS) Externalize cov kev pab cuam website uas yog tag nrho cov RESTful. Tuam txhab uas muag, Tshwj xeeb tshaj yog cov externalizing lawv cov kev pab cuam nyob hauv Internet yuav xum mus so SOAP dua SOAP vim REST leverage tsawg bandwidth thiab cov txheej txheem sai dua SOAP architecture. SO muaj ib co kev txwv tiam sis tseem nws yog preferred los ntawm ntau tuam txhab uas muag.

Nyob rau hauv tsab xov xwm no peb yuav tsom rua cov kev sib txawv ntawm reSTful web web thiab lawv yuav siv.


So kom txaus?

SO yog ib qho architectural mus kom ze rau kev sib txuas lus ntawm lub nruab. Tam sim no, Cov yooj yim Object Access protocol (XUM NPUM NTXUAV) THIAB SO yog ob txoj kev uas siv los tsim kom muaj kev sib txuas lus ntawm lub nruab. SOAP thiab SOST siv los ua kev pab cuam webs. Txoj kev txwv no muaj cov nuj nqis raws li nta

  • Lesser siv bandwidth piv rau lub SOAP.
  • Yooj yim rau developers los ua kev pab cuam web.
  • Zoo tagnrho rau cov kev pab cuam webs uas yog externalized los ntawm tuam txhab uas muag nyob rau hauv Internet.
  • Muaj peev xwm siv tau los ntawm ntau yam cuab yeej.
  • Cov lus exchanged ntawm cov kev noj haus thiab cov khoom uas yuav ua tau teeb thiab platform agnostic.

Tab sis yog txoj kev mus kom ze muaj ib co kev txwv piv rau SOAP, Nws yog ib tug nrov hugely nrov nrog cov tuam txhab uas muag.

Kev Pab Cuam Result?

Obviously, Nws yog ib qhov kev pab cuam web tsim raws li txoj kev soj ntsuam. ReSTful cov kev pab cuam hauv Internet zoo tshaj plaws. Nrog kev pab los ntawm tej yam constraints thov los ntawm cov architecture architecture xws li cov khaub ncaws, ReSTful web site yuav muaj kev kawm ntau yam, scalability, modifiability thiab muaj peev xwm ua hauj lwm nrog lub Web site. Cov architecture txheeb xyuas cov ntaub ntawv thiab cov chaw muab kev pab uas yuav muab tau kev pab los ntawm qhov kev pab los ntawm qhov Web site, hu ua Uniform Resource Identifiers (URIS). Cov chaw muab kev pab no siv thiab siv los pab rau tej txheej txheem haujlwm yooj yim. TAS cov architecture yooj yim client/server architecture thiab kev sib txuas lus tshwm sim li HTP.








ReSTful cov kev pab cuam yog nyiam tuaj nrog cov tuam txhab uas muag externalizing cov kev pab cuam nyob rau hauv Internet, Feem ntau mas cov lawv yog tus AWS, Microsoft thiab Google. qhov tseeb, Feem ntau cov APIs externalized los ntawm tuam txhab uas muag cov hnub no reSTful. Piv txwv, Facebook thiab Twitter muab rau lawv nta los publishing API lus rau lawv cov websites.

Qhov nta ntawm reSTful Web site?

ReSTful cov kev pab cuam muaj cov nuj nqis raws li nta:

  • Txoj kev ywj pheej los sawv cev rau sawv cev

ReSTful web sawv cev rau cov neeg sawv cev ntawm cov xov xwm no nyob rau hauv tej ntaub ntawv uas xav tau — Nws yuav yog JSON, XML los yog lwm yam.

  • lus xov

Tus neeg tau kev pab thiab cov kev sib txuas lus hauv tsab ntawv ntawm lus. Feem ntau, lus muaj ob hom ntsiab lus — Cov ntaub ntawv thov los ntawm tus neeg tau txais kev pab thiab cov metadata rau cov lus. Lub metadata muaj cov ntaub ntawv xws li cov lag luam los yog HTTP methods xws li MUS, Muab, Ncej, THIAB NTXIAS; chaw muab kev pab URI; HTTP version; thov taub hau thiab thov lub cev.

  • URI

Txhua qhov chaw muab kev pab nyob rau tag nrho cov tswvyim uas raug muab xa mus rau ib URI uas enables tag nrho cov chaw muab kev pab rau lawv mus nrhiav kom tau kev mus nrhiav kom tau ib leeg. Nws zoo li cov nplooj ntawv Index ntawm ib lub website uas koj yuav saib tau cov nplooj ntawv sib txawv npaum li cas cov nplooj ntawv yog txuas.

  • Cov txheej txheem

Cov architecture txheej txheem predefined thiab constant haujlwm uas yuav muab tau rau cov kev pab los ntawm reSTful cov kev pab cuam website. Lub lag luam yog TAU TXAIS, Muab, Ncej, DELETE, KEV XAIV THIAB LUB TAUB HAU. Qhov no mus tsis hais tias txhua lub lag luam muaj ib lub hom phiaj hais. Piv txwv, LUB TAUB HAU yuav siv tau rov qab mus rau tus header teb xws li seb ib qhov chaw muab kev pab tshwj xeeb los yog tsis. Lub lag luam MUS yog siv los nqa ib qhov chaw muab kev pab.

Cov Qhab Nees Lag Luag Tsis Cuag Luag

Lub ntsiab kom zoo dua thiab disadvantages no tiv thaiv kab mob hauv qab.

Zoo

  • KEV SOJ ntsuam txog cov kev pab cuam tsawg.
  • Nws yog ib tug lightweight.
  • Txheej txheem cai sib hais.
  • Khw muag khoom noj nyob rau hauv ib cache kom tib lo lus teb yuav tau muab hais rau tib yam yav tom ntej. Lub sij hawm no thiab dag zog.
  • Zoo meej rau cov kev pab cuam externalized hla lub Internet.



Disadvantages

  • Nws cov architecture architecture no tsis npaum li cas los kov tej chaw, tsis zoo li SOAP kuas APIs.
  • Muaj ntau txoj kev thov no tsis tau ntim ntawm cov ntaub ntawv loj.
  • Formal REST kev pab cuam piav qhia, Tsis muaj qauv txheej txheem tau raug txais.

Plahaum & configuration

Mus configure nyob nram qab no yog yam plaub rau tom qab

  • Down load load JDK ntawm qhov txuas thiab muab cov chav kawm ntawv

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Tam sim no koj cheeb tsam yog teem caij sau ntawv reSTful web site. Nyob rau hauv cov seem tom ntej no peb yuav tsim ib cov qauv ntawv.

Lub tsev reSTful Web site – Xaiv daim ntawv thov

Nyob rau hauv tshooj no peb yuav tsim ib daim ntawv thov kev pab cuam web. Qhov no yog ib tug tub ntxhais kawm ntawv uas cov me nyuam kawm ntawv yuav raug tus kab mob reSTful web site. Tom qab no yog cov components deploy qhov web site.

Ua ntej, Peb tau tsim ib tug me nyuam kawm ntawv POJO kawm kom muaj tag nrho cov me nyuam kawm ntawv paub. Ntawm no peb tau siv ib zaug xwb me nyuam kawm ntawv paub.

Qhia 1: POJO chav kawm ntawv rau cov menyuam kawm ntawv

pob com.techalpine;

chaw nres nkoj java.i.Serializable;

Import javax.xml.bind.annotation.XmlRootElement;

Xmax.xml.bind.annotation.XmlElement;

@XmlRootElement(lub npe = “Menyuam”)

Pej xeem huab hwm cov tsev kawm ntawv siv serializable {

ntiav static zaum kawg serialversuID = 1L;

//Me Nyuam Kawm Ntawv Paub

ntiav;

hlua kauj ruam;

qhov ntiav string dab neeg;

Pej xeem Kawm Ntawv(){}

Pej xeem Kawm Ntawv(ntsaub, hlua kauj ruam, hlua string){

qhov no... stid = stid;

Qhov no..stname = stname;

qhov no.stsubject = stsubject;

}

Pej xeem nyob rau hauv getStid() {

sawv ntsug;

}

@XmlElement

pej xeem tsis txhob setStid(ntsaub) {

qhov no... stid = stid;

}

Pej xeem string tauStname() {

ncu rov qab los;

}

@XmlElement

Pej xeem tsis txhob setStname(hlua kauj ruam) {

Qhov no..stname = stname;

}

Pej xeem string() {

rov qab los stsubt;

}

@XmlElement

Pej xeem tsis txhob setStsubject(hlua string) {

qhov no.stsubject = stsubject;

}

}

Tom qab uas tus menyuam kawm ntawv DAO. Nws tsim ib tug me nyuam kawm ntawv.cov ntaub ntawv sau lossis tub ntxhais kawm ntawv paub. Yog tias cov ntaub ntawv tshwm sim ntawd ces cov ntaub ntawv yuav raug muab ntxiv rau hauv daim ntawv ntawd. Txwv tsis pub, Cov ntaub ntawv tshiab yuav tsum tsim thiab cov ntaub ntawv yuav muab ntxiv.

Qhia 2: Neeg Kawm Ntawv DaO

pob com.techalpine;

ntshuam java.io.File;

ntshuam java.io.FileNotFoundException;

import java.io.FileOutputream;

ntshuam java.io.FileInputStream;

ntshuam java.util.ArrayList;

ntshuam java.util.List;

ntshuam java.io.IOException;

import java.io.Objectinputream;

import java.io.ObjectOutputream;

Pej xeem Cov Hoob Kawm {

Daim Ntawv Teev Npe<Menyuam> Me Nyuam Kawm Ntawv(){

Sau<Menyuam> Neeg Kawm Ntawv = nuj;

sim {

Cov ntaub ntawv inputfile = Ntaub ntawv tshiab(“Tub Ntxhais Kawm Ntawv”);

Yog hais tias (!cov lus tsis txaus siab...()) {

Tub ntxhais kawm ntawv = Tub ntxhais kawm ntawv tshiab(333, “Nicholas”, “Physics”);

Menyuam Kawm Ntawv = Tshiab ArrayList<Menyuam>();

Me Nyuam Kawm Ntawv Pheej.ntxiv(Menyuam);

Txuag Tau Cov Neeg Kawm Ntawv(Tub Ntxhais Kawm Ntawv);

}

ntxiv{

FileInStream finstream = tshiab FileinStream(tsis txaus siab);

Objectinputream objoutream = tshiab Objectinputream(finstream);

Neeg Kawm Ntawv = (Sau<Menyuam>) objoutream.readObect.nyeem();

objoutream... kaw();

}

} ntes (IOException exp) {

exp.printStackTrace();

} ntes (ClassNoTFoundException exp) {

exp.printStackTrace();

}

cov menyuam kawm ntawv rov qab;

}

ntiav cov Neeg Kawm Ntawv(Sau<Menyuam> Tub Ntxhais Kawm Ntawv){

sim {

Cov ntaub ntawv inputfile = Ntaub ntawv tshiab(“Tub Ntxhais Kawm Ntawv”);

FileoutStream foutstr;

foutstr = tshiab FileOututStream(tsis txaus siab);

ObjectOutStream objoutr = tshiab ObjectOutputream(foust);

objoutr.writeBObect(Tub Ntxhais Kawm Ntawv);

kaw...();

} ntes (FileNotFoundexception exp) {

exp.printStackTrace();

} ntes (IOException exp) {

exp.printStackTrace();

}

}

}








Tom qab cov kev pab no yog cov kev pab qhia ntawv rau cov me nyuam kawm ntawv kom paub meej.

Qhia 3: Neeg Kawm Ntawv Pab Neeg Kawm Ntawv

pob com.techalpine;

ntshuam java.util.List;

import javax.ws.rs.GO;

import javax.ws.rs.Path;

import javax.ws.rs.rs.produces;

import javax.ws.rs.tub ntxhais MediaType;

@Path(“/Neeg Kawm Ntawv”)

Pej xeem kawm ntawv cov neeg kawm ntawv {

Me Nyuam Kawm Ntawv Me Nyuam Kawm Ntawv = Tub Ntxhais Kawm Ntawv tshiab();

@GET

@Path(“/me nyuam kawm ntawv”)

@Produces(MediaType.APPLICATION_XML)

Daim Ntawv Teev Npe<Menyuam> Tau Zoo Tshaj Plaws(){

Rov qab mus kawm ntawv tus me nyuam kawm ntawv...();

}

}

Tom qab cov web.xml zaj duab xis piav tag nrho cov configuration lus.

Qhia 4: Webb deployment web.xml

<?xml version =”1.0″ encoding =”UTF-8″?>

<web-app app xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance”

xmlns =”http://java.Sun.com/xml/Ns/javaee”

xsi:schemaLocation =”http://java.Sun.com/xml/Ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”

ID =”WebApp_ID” version=”3.0″>

<zaub>Neeg Kawm Ntawv Kev Tswjhwm</zaub>

<pw tsaug zog>

<tis npe>ReSTful web site</tis npe>

<chav kawm ntawv>org.glassfish.jersey.servlet.ServletontAiner</chav kawm ntawv>

<ntsawj>

<param-lub npe>tsho.config.server.provider.tus neeg zov me nyuam...</param-lub npe>

<tus nqi>com.com techalpine</tus nqi>

</ntsawj>

</pw tsaug zog>

<qhwv-mapping>

<tis npe>ReSTful web site</tis npe>

<tus qauv>/teev</tus qauv>

</qhwv-mapping>

</Web-app>

Tom qab tag nrho cov components yog ua ib daim ntawv ua tsov ua rog WAR thiab deploy nws nyob rau hauv tag nrho cov neeg pab leg ntaubntawv.

Kev ntsuam xyuas qhov web site, khiav hauv qab no URL nrog tau thov kom muaj kev thov. Ntawm no tej kev pab cuam web peb kuaj cov cuab yeej siv tau.

URL: http://localhost:8080/Me Nyuam Kawm Ntawv/So/Tub Ntxhais Kawm Ntawv/Me Nyuam Kawm Ntawv/Cov Kawm

Tom qab no yuav muab tso zis. Nws qhia tau hais tias tus me nyuam kawm ntawv paub meej nyob rau hauv XML daim ntawv. Cov ntaub ntawv xa tuaj yuav tau ua nyob rau hauv JSON daim ntawv.

<?xml version =”1.0″ encoding =”UTF-8″?>

<me nyuam kawm ntawv>

<Menyuam>

<ruam>333</ruam>

<ncu>Nicholas</ncu>

<xyeej>Physics</xyeej>

</Menyuam>

</me nyuam kawm ntawv>



Xaus

Xav txog qhov sib xws li huab xam thiab mobile apps, Tsuas yog ib lub sij hawm ua ntej reSTful web txhim khu cov chaw. Txawm li cas los, nyob lightweight kuj theem ob peb kev txhawj xeeb uas yuav tsum tau nyob. Tab sis npog, SO nyob hauv lub web sab ntiaj teb qhov kev pab cuam thiab nws yog tswj cov ntaub ntawv sib txuas lus ntawm cov ntaub ntawv sib txawv. Vam cia no tsab xov xwm no yuav muab ib txhij txhua nkag siab txog lub tswvyim thiab pab cov developers hauv lub tsev lawv reSTful website.

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share