algaworks livreto desmistificando rest com java 1a edicao

Upload: diego-patrick-da-silva-santos

Post on 07-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    1/44

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    2/44

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    3/44

    D> E > "

    E>W= D

    1^ ETS, 11/02/2016

    ] 2016 A= T $.

    .

    &> = K > > =>, > =Y >R, > >S

    A= > Z P=.

    A= T $

    HHH.=H

    @=H

    +55 (11) 2626-9415

    - !

    http://www.youtube.com/subscription_center?add_user=algaworkshttp://www.youtube.com/subscription_center?add_user=algaworkshttps://www.facebook.com/algaworkshttps://www.facebook.com/algaworks

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    4/44

    E>W= D A= > CV

    C>TS, E= > T

    >TS TZ C"

    $C-1. = X

    H $ E

    H. A >U> >

    CV C>TS > >TS > =R.

    $=

    https://www.linkedin.com/in/emiliodiashttps://www.linkedin.com/in/emiliodias

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    5/44

    A >T...A V > = =, > =>

    > V, > I= > [. > =P?

    C> ?

    D , U > >> P [. E >

    => =>, > =K> S K

    > = =, =,

    = = A= [ S =TS

    G= > X >, > >TS U V

    C> " F >=

    =? V => [ = =>

    S >= XI> TS, > =K V >

    K.

    E > ->=  =@=H.

    http://alga.works/comunidadejava/mailto:[email protected]:[email protected]://alga.works/comunidadejava/

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    6/44

    A =

    E > = (>> , > ) P > =, ,

    X K > > =.

    A = = > >U> >

    >TS ". C>= F< H!

    https://twitter.com/intent/tweet?text=Estou%20lendo%20o%20livreto%20gratuito%20de%20REST%20com%20Java%20da%20@algaworks.%20Imperd%C3%ADvel!&url=http://alga.works/livreto-desmistificando-rest-com-java/&original_referer=http://alga.works/livreto-desmistificando-rest-com-java/https://twitter.com/intent/tweet?text=Estou%20lendo%20o%20livreto%20gratuito%20de%20REST%20com%20Java%20da%20@algaworks.%20Imperd%C3%ADvel!&url=http://alga.works/livreto-desmistificando-rest-com-java/&original_referer=http://alga.works/livreto-desmistificando-rest-com-java/https://www.facebook.com/dialog/feed?app_id=1416943265272445&link=http://alga.works/livreto-desmistificando-rest-com-java/&redirect_uri=http://alga.works/livreto-desmistificando-rest-com-java/https://www.facebook.com/dialog/feed?app_id=1416943265272445&link=http://alga.works/livreto-desmistificando-rest-com-java/&redirect_uri=http://alga.works/livreto-desmistificando-rest-com-java/

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    7/44

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    8/44

    >P

    TS

    E

    C=- .......................................................................................... 13

    = ....................................................................................................... 14

    C ............................................................................................................15

    > ..................................................................................... 16

    > > > .................................................................................. 17

    CX > .................................................................................17

    O E E=?

    E= > ........................................................................ 18

    ...................................................................................................... 19

    %U ....................................................................................................... 24

    E 'A

    %= >

    &W= 0 - ' ..............................................................................................32

    &W= 1 - ...................................................................................... 34

    &W= 2 - .............................................................................. 35

    &W= 3 - AE'A ................................................................................... 36

    1

    2

    2.1

    2.2

    2.3

    2.4

    2.5

    2.6

    3

    3.1

    3.2

    3.3

    4

    5

    5.1

    5.2

    5.3

    5.4

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    9/44

    C=S6

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    10/44

    CW= 1

    TSV > P = > E=, S U>>?

    % > = > TS > >,

    = >X . % = >= > =K

    TS?

    & =, > P > U [

    > > >=> > E= > " >.

    V P > ? E U > S

    > = P , > .

    >>, > > > H P

    > => > K = >>. & ,

    > > > =TS >>. ' U U > > , = =, >

    X.

    A > = > > > > > =

    => > >. & [=> , >

    > > > , >, =,

    C, . ' > =,

    >> > .

    HHH.=H   10

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    11/44

    ' > = > , =>

    >, >, > > U

    >= >= > =TS P >=I.

    A=> U W= >> > > > = >U>

    ITS > >.

    C> > I> K > > IV

    T, >, I>=, > > > > -

    >> W= >> > > = W, > =>

    >. E IV U

    > > > >== >=.

    C> V > =X, X = > Q =TZ

    >. A=U> , A (A= >> ) >

    ` =Ia X >,

    > > = = I > X.

    G > > H==, H, G= F< >

    > > >= >= >

    > > =TZ . ' , = > => >( ), =K > > >

    > T.

    DK , > P= = > =

    S P > U, > >U>

    > = > > P >

    IV K >=.

    A=U> , P =K> => >

    >= > , =S S >

    > => > = > >

    K .

    A >=W > = > S

    >=> > > K > >

    . S S > A ? E= P

    HHH.=H   11

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    12/44

    W >> A > =

    >. A =>, >:

    \ >=

    \ EIW=\ E=P=

    \ >=

    \ G==

    \ E > >_

    W> > => > >S. EI, >

    I S > > = > >

    >TZ S P S =K, >>T P-= > > => W

    =TZ K >=.

    B , = X > > >= =

    E " > >=>TS =TZ >

    . > = >U> > E,

    => [ Z > >

    U .

    HHH.=H   12

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    13/44

    CW= 2

    EA > > , E W 2000, .D > > J F=1.

    ' = >=KTS > >= P

    >  constraints. E  constraints   > > >

    > = Z > > >=,

    = >>.

    > > >=  contraints?

    2.1. C=-

    A = W   constraint   U =

    > >. E S >,

    I>= > > TS >> >K>

     back-end  =TS.

    ' S > >> P P  back-end.

    > =TS == = >

    . A=> P > > >=, >H A=" A E= >> => > =

    > =.

    1. ://HHH.../N=/

    HHH.=H   13

    http://www.ics.uci.edu/~fielding/http://www.ics.uci.edu/~fielding/

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    14/44

    2.2. =

    E W Z TS S =TS

    > TZ , , TS

    >TZ P = > = .

    ' = >=, U>, U > >>  cookies

    >K> Z = . E >

    > =, >> .

    >  cookies U =KTS >

    > P > = > = =TZ. A

    I = > >= TS.

    = > >> ,=> > Z = =, == . EI>

    P > S, I>=, > >=

    Sticky Session2 > > P >=, > > W=,

    = >K> >TZ =.

    2. ://..//2.2/>/>IJ=.>=

    HHH.=H   14

    http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.htmlhttp://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    15/44

    F=, =K > >= >TS stateless , A

    W > =, = ==.

    > > , > W=, = U =>

    > S > >TS .

    2.3. C

    > >= >, > > E >

    > W   cache. C => >

    > = => >P ( proxies ,   gateways   /

     = ) = =W  cache > .

    ' = > >  constraint 

    TS   headers  `Ia (S 1.0 ) / `-=a

    (S 1.1 ).

    > TZ = == =  cache , S

    > > >

    HHH.=H   15

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    16/44

    TS. E >= > I

    => S P.

    2.4. >

    C> > U , > E > U

    W, > > U > > >.

    B T > >

    >= = Z >. = >

    , => I > :

    \

    \ %

    \   Hypermedia

    >=> =K , > A = > TS

    >U> =KTS >U X . &X >

    >= > Z .

    > > = > , >

    I>= > > >= > > ->>. >

    = = , > I>= , =,

    . D> > > > >=TS

    . AI > I>=:

    >= `=a > U TZ >

    I >>. F> > > >=>

    V P > TZ = >>U = .

    HHH.=H   16

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    17/44

    2.5. > > >

    C> > == P >

    W, > > E =>

    >P > => =.

    => >P S =K >

    =. U = =, > V

    G= > > >> D&, > V

    > S K > cache. =K > S

    U .

    X >  stateless   cache , =K >=> > > =. E = U >

    => > > > >

    > =TS, > = T.

    2.6. CX >

    V > P > U =

    P => H TS . A >

    = => S I=, U

    > H = > >>.

    CX > > = >=, = = =

    > =. EI>= S "

    A=.

    HHH.=H   17

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    18/44

    CW= 3

    O E E=?V P T > E E=,S U? &S , > S > >> U >P=

    >. % , > A =TS > E

    E=?

    D > > , U V K A E=. A=U> , U

    > V V >= = >>

    >.

    > >= W X

    > >, V =K > E, P >> >

    V = > >=>TS >>

    W, V E=.

    A S = S =, = K

    V > =K >= . >U> I

    = E > U > P.

    3.1. E= >

    AU , X > W > > =

    . A S > > =KTS

    , > > > > P.

    HHH.=H   18

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    19/44

    > > > =K >=>TS E:

    = . > = >U> =

    TS > A E=. ' S U = =

    W, > > = W V

    >=> > E=.

    3.2.

    > U =K > [ >

    W. A FC 3986 => W >

    .

    B>, > >=> > > , U

    , > U => =K > A. EI>=:

    /cliente/1

    /produto/1

    /cliente/1/notificacao

    > =K > > , S > > TS I > . A= = > =KTS

    > W, U>, S U => P= V

    > =.

    > = V, > > = > >

    W . &S > > = >H U = > S >= > >=>TS

    =.

    @RestController

    @RequestMapping("/cliente")

    public class   ClienteResource   {

    @RequestMapping(value   = "/{id}", method   = RequestMethod.GET,

    produces   = "application/json")

    public ClienteRepresentation buscar(@PathVariable("id") Integer id) {

    System.out.println("Retornando cliente...");return new ClienteRepresentation("João da Silva");

    HHH.=H   19

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    20/44

    }

    }

    A >=, X > =K => W

    TS > . ' = > = U:

    A TS @RestController   > = =K >

    = > W > E.

    A TS @RequestMapping   = ClienteResource > =

    P > . O >> > >=

    P > > >.

     "P TS @RequestMapping  >U buscar , > =>

    . A > U >> > {id}. >

    = W value   > =, > >

    = >> `/=/LMa. O

    >U> T  produces , > TS

    = > > "'&.

    EI , > > = >= :

    {

    "nome": "Joao da Silva"

    }

    U > >= >TS > > "'& (=> "'&

    ), > P > >T =.

    V = `TSa > >> . O > V >

    >= = V >.

    > U = > = (I: H), I

    > U > >> =. E >>

    U > TS > > . A >> S

    > = => > >,

    > I>=, > = .

    HHH.=H   20

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    21/44

    TZ

    A TZ > >= > P >, > %$, "'&,

    %$ . V = > TS >

    =KTS  hypermedia (> X >

    ).

    > > =, > I>= `/=/1a,

    > >. &= , X > > TS >

    > "'&, > X W> >U> P-= >

    >>.

    >[== TZ (> > TS [) .

    W=, V  header `Aa = U

    TS > . A I I > > =.

    & > , >

    > > TS .

    A > K > P S > "'& %$, S

    > =K > A =, V =>

    [ =.

    HHH.=H   21

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    22/44

    %$

    ' %$ ( % => >TS

    > = 3C (= C>) > >

    TS = .

    E= U =K > > > S >TZ >

    U >> >K> >>. AI, >

    > > %$:

    10

    Alan Turing23/06/1912

    Matemático

    Manchester

    Inglaterra

    & >TS %$ U > > > P, > > = > > > >= => >

    > ".

    > %$ U .

    TS >TS, > P ,

    K > overhead P.

    B , > =K > =TS > I, >

    .

     "'&

    ' "'& (" ' &) > > =

    TS > > > >= =.

    HHH.=H   22

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    23/44

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    24/44

    3.3. %U

    A FC 72313 > 8 >U > =K

    TS > A E=. E >U >R

    TZ W > > > .

    D 8 >U, I > => 4 > .

    GE

    ' >U GET  U =K I > .

    E= U >, , K U I > , = > P >>. EI>=:

    GET /cliente/1   HTTP/1.1

    E > P > TS `/=/1a.

    '

    =K TS > > TS.

    EI>=:

    POST /cliente   HTTP/1.1

    João da Silva

    ...

    ' >U PUT  U =K > > =K > > . E>

    = P > W, = >U> =K > >

    TS, I>= = > =

    =K.

    3. ://HHH..//3986.I

    HHH.=H   24

    https://www.ietf.org/rfc/rfc3986.txthttps://www.ietf.org/rfc/rfc3986.txt

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    25/44

    DE$EE

    ' = > > = >TS > > . EI>=:

    DELETE /cliente/1   HTTP/1.1

    A > >U =K> > CD

    (Create, Read, Update  Delete) >=TS , = S

    > > > > >U

    > >U> > TS >R > >

    .

    > > >=, = TZ > > =. > > = > >

    .

    @RequestMapping(value   = "/{id}", method   = RequestMethod.DELETE,

    produces   = "application/json")

    public   void   excluir(@PathVariable("id") Integer id) {

    System.out.println("Excluindo o cliente...");

    }

    >> X > > I>= > S

    , > =. B>

    >> , >U  method , = TS

    > > I I=S > > .

    D >, TS   DELETE HTTP   P

    > >U excluir.

    A=U> >U, > > TS,

    > TS. I > >

    = .

    \ 1II - >TZ

    \ 2II -

    \ 3II - >

    \ 4II - E =\ 5II - E

    HHH.=H   25

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    26/44

    > >, I> X W >

    = > > TZ >=TS .

    ' > U > => >

    X . > > U TS >RuntimeException , > X = U >

    TS. > I>=:

    @ResponseStatus(value   = HttpStatus.NOT_FOUND)

    public class   ResourceNotFoundException   extends RuntimeException   {

    }

    T TS ResponseStatus. E= > > =

    X ITS =T. & , >X 404 (Not Found) P , > = S

    .

    V > = > =T ITS.

    ES > X I>= I:

    @RequestMapping(value   = "/{id}", method   = RequestMethod.GET,

    produces   = "application/json")public ClienteRepresentation   buscar(HttpServletResponse response,

    @PathVariable("id") Integer id) {

    System.out.println("Cliente não encontrado...");

    throw new ResourceNotFoundException();

    }

    =KTS ITS >> > V P

    =.

    A > =K X > >=, > U =

    > U P TS => >

    E=. '>, I> [> =, >

    V P >T =K > .

    A=U> > U ,

    > > [ >=> > A E=.

    D =, -  web linking , TS [, queries , caching ,

    HHH.=H   26

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    27/44

    TZ T. C> > = >

    W.

    A > >=>TS , [>

    >H =K. V P = > " EE =, V >U>

    TS "A-. E= > >> =

    > , I > W> .

    HHH.=H   27

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    28/44

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    29/44

    A S U > > >> =K "'&. &

    , > > >> >= = (C), > >

    >> .

    =K V > [ U = C.

    ' C U > >= > T> =KTS >U

    ITS > >.

    > I>=, > = " >U, C U >

    >= =KTS >U ITS >

    > ( >)4.

    ' 'A U >, , = IZ > U >U "

    ( =>), = > I > >

    > %$.

    D , U P = = E 'A

    > =U> > > S >. E

    > = > > >= =. O

    P =KTS > >= > W E?' >= C, >=> = 'A > > U

    TZ > -*, U > ?

    ' = > TS S W >

    W. A U >= E I > >

    > P > = > TS.

    $>- S I > >= “One size fits all” , , E

    'A S U = =TS =>.

    % S P = A > E= >

    `W=a > > =, , = > >

    W P > => E=.

    4. > DW, W >. AH . >

    HHH.=H   29

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    30/44

    C> > > S, >

    `%= % a5 XI> W=, > >

    X > > W= > A = =>

    E=.

    5. ://>H=.>/=/%J%=.>=

    HHH.=H   30

    http://martinfowler.com/articles/richardsonMaturityModel.htmlhttp://martinfowler.com/articles/richardsonMaturityModel.html

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    31/44

    CW= 5

    %= >

    A J F= I = > A

    E= = >  constraints  >

    =6 , > >, K  hypermedia , P, > K

    > > > > > >=.

    E > E, > >TS

    > A E= = => S  constraints 

    F=.

    A , > > > =, >

    > = >, > >= > .

    ' >= $ 7 > 4 W

    > W A > = >

    > >.

    ' W 0, 1 2 =K > > >= V, S >

    P >=>, U>, = V >> S S

    E=. & I > S W:

    6. ://J..>/=/2008/>JI7. ://HHH.>>J.>/=/

    HHH.=H   31

    http://roy.gbiv.com/untangled/2008/rest%C2%ADapis%C2%ADmust%C2%ADbe%C2%ADhypertext%C2%ADdrivenhttp://www.crummy.com/self/http://www.crummy.com/self/http://roy.gbiv.com/untangled/2008/rest%C2%ADapis%C2%ADmust%C2%ADbe%C2%ADhypertext%C2%ADdriven

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    32/44

    %= > F: ://>H=.>/=/%J%=.>=

    5.1. &W= 0 - '

    V > P = > => = > A

    >= . A W= > E Z, > A > E= > W=

    >. & P, = U =K >

    >> V U > >= = >

      > C.

    & W=, > > =K > > > %$, "'&

    . O > =>, > >, S U >

    >> S > > E. I > I>= A > W= 0:

    POST /salvarCliente   HTTP/1.1

    João da Silva

    ...

    A =KTS >  POST HTTP  TS > , S P >= > . C> P ,

    HHH.=H   32

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    33/44

    > >= > . I > =

    > > > C > E.

    RPC (POX)

    Verbo HTTP URI Ação

    GE /C=/1 =K

    ' /=C= C

    ' /=C=/1 A=

    GE/' /=C=/1 >

    REST

    Verbo HTTP URI Ação

    GE /=/1 =K

    ' /= C

    /=/1 A=

    DE$EE /=/1 >

    & = > =K T >=>

    > > =K > .

    > => > , U >=TS

    X . CX > S >

    >= > = =TS, > =>

     gateway  proxy => > . > I>=:

    GET /buscarCliente/1   HTTP/1.1

    HTTP/1.1 200 OK

    HHH.=H   33

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    34/44

    CLIENTE NÃO ENCONTRADO

    404

    A >> = = S ,

    > >TS => (200 '#), ,

    I > T >R = TS

    = =TS.

    5.2. &W= 1 -

    %= > ' > IZ> = >U> (C). E >= > K U >

    TS => = , =

    > = > >U

    > P-=.

    > > > TS E U >=>

    =KTS >> TS > > A.

    > I>= > W= > :

    POST /cliente   HTTP/1.1

    João da Silva

    ...

    E X U > >= > S , > U> >=> `C=a.

    %= > , > >U

    > , TZ P >

    . O > XI> S.

    HHH.=H   34

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    35/44

    5.3. &W= 2 -

    & W=, I I > =

    I > = >R A, , > =K

    > X = > .

    A =KTS >U > (GET, POST, PUT    DELETE), >

    > X , >> >=>

    TS > > > A.

    C `=a I>= , I

    >=> > A W= 3 >.

    C > =:

    POST /cliente   HTTP/1.1

    João da Silva

    ...

    V : A >> > S U = S? >, = T? A >> TS

    >= >, P >U>

    > >> = = , >

    I:

    HTTP/1.1 201   Created

    Location: /cliente/1

    O > 2 : ' > U =KTS

    `201 Ca. C> = TS > , >

    > > > .

    A=U> , > > U T  header ̀ $a. E header

    > > = T W=.

    C> T  header `$a (/=/1), X >

    K :

    HHH.=H   35

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    36/44

    GET /cliente/1   HTTP/1.1

    HTTP/1.1 200 OK

    1

    João da Silva

    ...

    C> `/=/1a, =K >

    (GET ) > `200 '#a >

    > >> >>.

    C P >TS , V =K >UDELETE , > > I:

    DELETE /cliente/1   HTTP/1.1

    A >>, P > >

    >> > .

    5.4. &W= 3 - AE'A

    E W= U > > [ = E. EI >

    U => AE'A (Hypermedia as the

    Engine of Application State) = = > > A.

    E> = =, F= I > = A S =K>

    AE'A S > E=, >> >, V > [ E > >

    W.

    A > = S > >=, AE'A U >

    P . E= > > =>

    = > TS hypermedia , > > >

    = => > .

    A I > >= .

    HHH.=H   36

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    37/44

    > > U =TS

    >> P > . ' > U =K >

    TS > U = (I:

    > P %$).

    A >> K > > X %$ (Hypermedia Text Markup

    Language), > =. I>=, >

    [  index.html:

    Produtos

    ClientesContato

    Carrinho

    & X %$ >, > T   , K =

    %$ (>=> > H) = I >  GET   >

     href.

    HHH.=H   37

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    38/44

    C> > >   , H P

    K > GET ? P = TS %$ K

    K >    , > >> GET   Q

     href , , I > U- H

    .

    C>T> S > >= AE'A.

    C> X > , TS  hypermedia   = > >

    > , > = > >>. C U

    > > (> P %$) V (

    = > > = X > > ( V, `a). ' >> P = = > , > > > > .

    >, > %$ U > => >

    =TZ > W >= AE'A. U>, >

    >=> > A = >> >? E =

     W >?

    => > = > > W

    >=, X > P >

    =KTS = (H). ' => ,

    =>  hypermedia  %$, > > = ,

    = => [ =

    , , S , > =

    P > > > > =>

    =, > H, proxies , gateways , = .

    C >> > A, V

    A => = > = >

    =KTZ = =.

    V P > > > = > >

    > P > KTS? "P > >

    > >= P, > > T > ?

    HHH.=H   38

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    39/44

    C A E= A > >  constraints

    = AE'A. C> , V P =

    =T W >, A => =P,

    IW > W .

    C A > > > = >

     W U > > , >= >= =K >

    =TZ S > >= C.

    & =, S > = > > TS

    = A E=, > P I > > > = >

    > = > W.

    I>=, I > TS > A

    =K hypermedia:

    GET /cliente/1   HTTP/1.1

    HTTP/1.1 200 OK

    1

    João da Silva

    & I>= >, > > `/=/1a. '

    > TS W TZ

    > =K.

    O = =, >S (/=/1), U>, `=a > = `=a, >

    > >R , , = =K >U DELETE 

    .

    C> >, = A P

    => `=a `a = >

    > =

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    40/44

    A >=> > A >   hypermedia   =

    TS = >= => =K. C A

    W = > =, U>, =

    Z > =K, > X %$, A'% B U >>

    TS > => X.

    >> TS I>= > > >= C,

    > > = A =

    > W TZ, > > C > 'A,

    V > TZ = >>

    > =.

    D , > TS A > >= S U > S =, V >.

    A> A== , > =

    > .

    HHH.=H   40

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    41/44

    CW= 6

    C=SC> = = > =K V > >!

    =K V > > U V

    . =>, I> P > S K>

    >=> > X P E. , U > V

    = > P.

    % => > = >

    P = > A E=.

    &S => S > > =. =>,

    = S W >= =>, U>, T >

    >> > V X A=

    = [ >, V

    >=> >= > W= =.

    D > >, V :

    \ C> > > > > =

    \ C> > K >=

    \ CW =TZ

    b >=

    b EIW=

    b E=P=

    b E_\ DT E E=

    HHH.=H   41

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    42/44

    \ ' > A E= A

    \ DT 'A E

    \ E > >_

    E = W > >! ;)

    HHH.=H   42

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    43/44

  • 8/18/2019 Algaworks Livreto Desmistificando Rest Com Java 1a Edicao

    44/44