Académique Documents
Professionnel Documents
Culture Documents
Kup ksik
Pole ksik
Oce ksik
Ksigarnia internetowa
Lubi to! Nasza spoeczno
Spis treci
O autorce
Podzikowania
O recenzentach
Wstp
11
15
Wprowadzenie do REST
REST i bezstanowo
Model dojrzaoci Richardsona
Poziom 0 zdalne wywoywanie procedur
Poziom 1 zasoby REST
Poziom 2 dodatkowe czasowniki HTTP
Poziom 3 HATEOAS
Bezpieczestwo i idempotentno
Bezpieczestwo metod
Idempotentno metod
Zasady projektowe dotyczce budowy usug typu RESTful
Wyznaczenie identyfikatorw URI zasobw
Identyfikacja metod obsugiwanych przez zasb
Czasowniki HTTP w REST
PUT czy POST
Identyfikacja rnych reprezentacji zasobu
Implementowanie API
API Javy dla usug RESTful (JAX-RS)
Kup ksik
16
16
16
17
17
17
18
18
18
18
19
19
20
21
22
22
23
23
Pole ksik
25
25
25
27
29
29
30
30
31
31
32
32
35
35
36
37
38
40
40
41
41
42
43
44
45
46
47
49
50
51
52
53
54
57
57
58
59
59
61
62
Kup ksik
Pole ksik
Spis treci
63
Zasady buforowania
Szczegy buforowania
Typy nagwkw buforowania
Nagwek Cache-Control i dyrektywy
Nagwek Cache-Control i API REST
Znaczniki ETag
API REST Facebooka i nagwki ETag
Asynchroniczne i dugotrwae operacje w REST
Asynchroniczne przetwarzanie da i odpowiedzi
Najlepsze praktyki pracy z zasobami asynchronicznymi
Wysyanie kodu statusu 202 Accepted
Ustawianie terminu wyganicia dla obiektw w kolejce
Asynchroniczne obsugiwanie zada przy uyciu kolejek wiadomoci
Metoda HTTP PATCH i czciowe aktualizacje
JSON Patch
Zalecana lektura
Podsumowanie
64
64
64
65
66
67
69
70
70
73
73
74
74
74
76
77
77
79
80
81
82
86
87
88
90
91
92
92
93
94
94
95
96
96
97
98
98
99
100
103
104
Kup ksik
Pole ksik
Dodatek A
Przegld API REST portalu GitHub
Pobieranie informacji z portalu GitHub
Czasowniki i akcje zasobw
Wersjonowanie
Obsuga bdw
Ograniczanie liczby da
Przegld API Graph portalu Facebook
Czasowniki i czynnoci zasobw
Wersjonowanie
Obsuga bdw
Ograniczanie liczby da
Przegld API portalu Twitter
Czasowniki i dziaania na zasobach
Wersjonowanie
Obsuga bdw
Zalecana lektura
Podsumowanie
Skorowidz
106
106
107
107
108
108
108
109
109
109
109
110
111
111
112
113
113
113
114
114
116
116
116
117
117
118
119
119
119
119
121
Kup ksik
Pole ksik
1
Podstawy REST
Usugi sieciowe w tradycyjnej technologii SOA, umoliwiajce zrnicowan komunikacj
midzy aplikacjami, istniej ju od pewnego czasu. Jednym ze sposobw obsugi tej komunikacji jest uycie technologii Simple Object Access Protocol (SOAP) i Web Service Description
Language (WSDL). S to standardy oparte na formacie XML doskonale sprawdzajce si, gdy
midzy usugami jest cisy kontakt. Ale nastaa era usug rozproszonych. Teraz rne klienty
z internetu, urzdzenia przenone, jak rwnie inne usugi (wewntrzne i zewntrzne) mog
uywa interfejsw API udostpnianych przez rnych dostawcw i rne platformy open
source. To sprawia, e potrzebne s technologie atwej wymiany informacji midzy usugami
rozproszonymi w rnych miejscach, z przewidywalnymi, solidnymi, cile zdefiniowanymi
interfejsami.
Protok HTTP 1.1, zdefiniowany w dokumencie RFC 2616, jest powszechnie uywany w rozproszonych systemach hipermedialnych. Technologia Representational State Transfer (REST)
bazuje na HTTP i moe by uywana wszdzie tam, gdzie ten protok. W tym rozdziale przedstawione s podstawowe wiadomoci na temat projektowania usug typu RESTful oraz uywania takich usug za pomoc standardowych interfejsw API Javy.
W rozdziale omwiono nastpujce zagadnienia:
Q Wprowadzenie do technologii REST.
Q Bezpieczestwo i idempotentno.
Q Zasady projektowe dotyczce budowy usug typu RESTful.
Q Standardowe API Javy dla usug typu RESTful.
Q Najlepsze techniki projektowania usug typu RESTful.
Kup ksik
Pole ksik
Wprowadzenie do REST
REST to styl architektoniczny zgodny z takimi standardami sieciowymi jak czasowniki HTTP
i identyfikatory URI. Obowizuj w nim nastpujce zasady:
Q Wszystkie zasoby okrela identyfikator URI.
Q Kady zasb moe mie liczne reprezentacje.
Q Kady zasb mona pobra, zmodyfikowa, utworzy i usun standardowymi
metodami HTTP.
Q Na serwerze nie s przechowywane adne informacje o stanie.
REST i bezstanowo
W REST obowizuje zasada bezstanowoci. Kade danie przesyane przez klienta do serwera musi zawiera wszystkie informacje potrzebne do obsugi tego zdarzenia. To poprawia
widoczno, niezawodno i skalowalno da.
Poprawa widocznoci wynika z tego, e system monitorujcy dania nie musi szuka szczegw poza daniami. Niezawodno poprawia si dziki wyeliminowaniu punktw kontrolnych i wznowienia w przypadku czciowych niepowodze operacji. Poprawa skalowalnoci
jest efektem zwikszenia liczby da, ktre jest w stanie przetworzy serwer, co jest moliwe
dziki temu, e serwer nie musi przechowywa informacji o stanie.
Roy Fielding napisa doktorat na temat stylu architektonicznego REST, w ktrym szczegowo opisa bezstanowo tej technologii. Wicej informacji na ten temat mona znale pod adresem http://www.ics.
uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm.
16
Kup ksik
Pole ksik
17
Kup ksik
Pole ksik
Poziom 3 HATEOAS
HATEOAS (ang. Hypermedia as the Engine of Application State hipermedia jako mechanizm obsugi stanu aplikacji) reprezentuje najwyszy stopie dojrzaoci w modelu Richardsona. Odpowiedzi na dania klientw zawieraj elementy hipermedialne, przy uyciu ktrych
klient moe zdecydowa, co robi dalej. Zasady te uatwiaj wykrywanie usug i sprawiaj, e
odpowiedzi s bardziej zrozumiae. Tocz si dyskusje na temat tego, czy HATEOAS rzeczywicie spenia wymagania RESTful, poniewa reprezentacja zawiera o wiele wicej informacji ni tylko opis zasobu. W rozdziale 5. przedstawiam par przykadw pokazujcych, jak zaimplementowano HATEOAS jako cz API niektrych platform, np. PayPal.
W nastpnym podrozdziale wyjaniam pojcia bezpieczestwo i idempotentno, ktre s bardzo wane w usugach RESTful.
Bezpieczestwo i idempotentno
W poniszych dwch podrozdziaach dokadniej wyjaniam znaczenie bezpieczestwa i idempotentnoci metod.
Bezpieczestwo metod
Bezpieczna metoda to taka, ktra nie zmienia stanu na serwerze. Warunek ten spenia na przykad metoda GET /v1/coffees/orders/1234.
Bezpieczne metody, do ktrych zaliczaj si GET i HEAD, mona buforowa.
Metoda PUT nie jest bezpieczna, poniewa tworzy lub modyfikuje zasoby na serwerze. To samo dotyczy
metody POST. Z kolei metoda DELETE nie jest bezpieczna, poniewa usuwa zasoby z serwera.
Idempotentno metod
Metoda idempotentna to taka, ktra zwraca taki sam wynik niezalenie od tego, ile razy zostanie wywoana.
Metoda GET jest idempotentna, poniewa niezalenie od tego, ile razy si j wywoa, zawsze zwraca
tak sam odpowied.
Metoda PUT te jest idempotentna, poniewa wielokrotne jej wywoanie powoduje aktualizacj tego
samego zasobu i nie zmienia to wyniku.
18
Kup ksik
Pole ksik
Metoda POST nie jest idempotentna, poniewa jej wielokrotne wywoanie moe dawa rne skutki
i powodowa powstanie wielu zasobw. Metoda DELETE jest idempotentna, gdy usunity zasb znika
i powtrne wywoanie tej samej metody niczego nie zmieni.
Polega na napisaniu API klienta do testowania usug lub uyciu narzdzi cURL
albo przegldarkowych do testowania da REST.
19
Kup ksik
Pole ksik
URI
Opis
/v1/library/books
/v1/library/books/isbn/12345678
/v1/coffees
/v1/coffees/orders
/v1/coffees/orders/123
/v1/users/1235
/v1/users/5034/books
Opis
GET
/library/books
GET
/library/books/isbn/12345678
POST
/library/books
DELETE
/library/books/isbn/12345678
PUT
/library/books/isbn/12345678
PATCH
/library/books/isbn/12345678
W kolejnym podrozdziale znajduje si opis zastosowania kadego z czasownikw HTTP w kontekcie REST.
20
Kup ksik
Pole ksik
GET
GET to najprostsza metoda HTTP pozwalajca uzyska dostp do zasobu. Gdy klient kliknie
adres URL w przegldarce internetowej, aplikacja ta wysya danie GET pod ten wanie adres. Metoda GET jest bezpieczna i idempotentna. dania wysyane t metod s buforowane
POST
Metoda POST suy do tworzenia zasobw. dania wysyane przy uyciu tej metody nie s
idempotentne ani bezpieczne. Wielokrotne wywoania mog spowodowa utworzenie wielu
zasobw.
danie POST powinno powodowa uniewanienie odpowiedniego elementu w buforze, jeli
taki istnieje. W daniach POST nie zaleca si stosowania parametrw zapytaniowych.
Poniej znajduje si danie utworzenia uytkownika:
curl X POST -d'{"name":"Jan Kowalski","username":"jkow", "phone":
"412-344-5644"}' http://api.foo.com/v1/users
PUT
Metoda PUT suy do aktualizowania zasobw. Jest ona idempotentna, ale nie jest bezpieczna.
Wielokrotne dania tego typu powinny dawa taki sam efekt w postaci zaktualizowania zasobu.
dania PUT powinny uniewania zawarto bufora, jeli taka istnieje.
Poniej znajduje si przykad dania PUT aktualizujcego uytkownika:
curl X PUT -d'{ "phone":"413-344-5644"}'
http://api.foo.com/v1/users
DELETE
Metoda DELETE suy do usuwania zasobw. Jest idempotentna, ale nie jest bezpieczna. Idempotentno wynika z tego, e zgodnie ze specyfikacj RFC 2616 skutki uboczne dowolnej wikszej od zera liczby da s takie same jak jednego dania. Oznacza to, e po usuniciu zasobu kolejne wywoania metody DELETE nic nie zmieniaj.
21
Kup ksik
Pole ksik
HEAD
dania typu HEAD s podobne do GET. Rnica midzy nimi polega na tym, e w odpowiedzi
na danie HEAD zwracane s tylko nagwki HTTP, bez treci. Metoda HEAD jest idempotentna
i bezpieczna.
Poniej znajduje si przykadowe danie HEAD wysyane za pomoc narzdzia cURL:
curl X HEAD http://foo.api.com/v1/users
Jeli zasb jest duy, to za pomoc dania HEAD mona sprawdzi, czy co si w nim zmienio, zanim si
je pobierze przy uyciu dania GET.
22
Kup ksik
Pole ksik
Implementowanie API
Wiesz ju mniej wicej, jak projektowa zasoby RESTful i jakich czasownikw HTTP uywa
do wykonywania rnych dziaa na tych zasobach, wic moemy przej do kwestii implementowania API i budowania usugi typu RESTful. Gwnym tematem tego podrozdziau jest:
Q API Javy dla usug RESTful (JAX-RS).
23
Kup ksik
Pole ksik
24
Kup ksik
Pole ksik
W podklasie tej zostaa nadpisana metoda getClasses() oraz dodano CoffesResource. W pliku
WAR podklasy klasy Application mog znajdowa si w katalogach WEB-INF/classes i WEB-INF/lib.
Jak wida w tym przykadzie, domylny egzemplarz klienta tworzy si przy uyciu metody
ClientFactory.newClient(). Za pomoc metody target() zosta utworzony obiekt WebTarget.
Z wykorzystaniem obiektw tego typu przygotowuje si danie przez dodanie metody i parametrw zapytania.
Zanim nie pojawiy si nowe API, dostp do zasobw REST uzyskiwao si w nastpujcy
sposb:
25
Kup ksik
Pole ksik
Przykad ten wyranie pokazuje, jak duego postpu dokonano w API klienckim JAX-RS 2.0
wyeliminowano konieczno uywania klasy HttpURLConnection, zamiast ktrej mona uywa API Client.
Jeli danie jest typu POST:
Client client = ClientBuilder.newClient();
Coffee coffee = new Coffee(...);
WebTarget myResource = client.target("http://foo.com/v1/coffees");
myResource.request(MediaType.APPLICATION_XML) .post(Entity.xml(coffee),
Coffee.class);
Opis
javax.ws.rs.Path
javax.ws.rs.ApplicationPath
javax.ws.rs.Produces
Definiuje typ mediw, jaki moe zosta zwrcony przez dany zasb.
javax.ws.rs.Consumes
javax.ws.rs.client.Client
javax.ws.rs.client.WebTarget
26
Kup ksik
Pole ksik
Klienty to cikie obiekty do obsugi infrastruktury komunikacyjnej po stronie klienta. Poniewa ich tworzenie i usuwanie to do czasochonne operacje, powinno si tworzy jak najmniej tych obiektw. Ponadto egzemplarz klienta zawsze trzeba poprawnie zamkn, aby nie dopuci do wycieku zasobw.
cURL
cURL to popularne narzdzie wiersza polece do testowania API REST. Za jego pomoc uytkownik moe tworzy dania, wysya je do API i analizowa otrzymane odpowiedzi. Poniej
znajduje si par przykadowych da curl wykonujcych podstawowe czynnoci:
danie curl
Opis
curl http://api.foo.com/v1/coffees/1
curl -i http://api.foo.com/v1/coffees/1
Cho narzdzie cURL jest bardzo pomocne, ma wiele opcji, ktre trzeba zapamita. Dlatego czasami lepszym rozwizaniem jest uycie narzdzia przegldarkowego, np. Postman albo
Advanced REST client.
Postman
Postman dla przegldarki Chrome to doskonae narzdzie do testowania i rozwijania API
REST. Zawiera przegldark danych w formatach JSON i XML oraz umoliwia podgldanie
da HTTP 1.1, jak rwnie ich wielokrotne wysyanie i zapisywanie na przyszo. Postman
dziaa w rodowisku przegldarki internetowej i umoliwia te przegldanie danych cookie.
Zalet narzdzia Postman w porwnaniu z cURL jest przyjazny interfejs uytkownika do wprowadzania parametrw, dziki czemu nie trzeba wpisywa caych polece ani skryptw. Ponadto
program ten obsuguje rnego rodzaju metody uwierzytelniania, takie jak uwierzytelnianie
podstawowe czy przy uyciu skrtw (tzw. digest access authentication).
27
Kup ksik
Pole ksik
Na powyszym zrzucie ekranu przedstawiono okno aplikacji Postman. Najprostszym sposobem na przetestowanie tego programu jest uruchomienie go w przegldarce Chrome.
Nastpnie naley wybra metod HTTP GET i wpisa adres URL api.postcodes.io/random/
postcodes. (PostCodes to darmowa otwarta usuga, ktrej dziaanie opiera si na danych geograficznych).
Otrzymasz odpowied JSON podobn do poniszej:
{
"status": 200,
"result": {
"postcode": "OX1 9SN",
"quality": 1,
"eastings": 451316,
"northings": 206104,
"country": "England",
"nhs_ha": "South Central",
"admin_county": "Oxfordshire",
"admin_district": "Oxford",
"admin_ward": "Carfax",
...}
}
Po lewej stronie okna znajduj si rne zapytania, ktre zostay dodane do kolekcji, np. pobranie wszystkich zamwie kawy, pobranie jednego konkretnego zamwienia, utworzenie
zamwie itd. na podstawie rnych przykadw z tej ksiki. Moesz te tworzy wasne kolekcje zapyta.
28
Kup ksik
Pole ksik
Inne narzdzia
Oto par innych narzdzi, ktre rwnie mog by przydatne w pracy z zasobami REST.
JSONLint
JSONLint to proste internetowe narzdzie do sprawdzania poprawnoci danych w formacie
JSON. Gdy wysya si dane w tym formacie, dobrze jest sprawdzi, czy s sformatowane zgodnie ze specyfikacj. Mona to zrobi wanie za pomoc narzdzia JSONLint. Wicej informacji na jego temat znajduje si na stronie http://jsonlint.com/.
29
Kup ksik
Pole ksik
Q
Q
Q
Q
Zalecana lektura
Q RFC 2616: http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html.
Q Model dojrzaoci Richardsona: http://www.crummy.com/writing/speaking/
Q
Q
Q
Q
2008-QCon/act3.html.
Implementacja JAX-RS Jersey: https://jersey.java.net/.
InspectB.in: http://inspectb.in/.
Postman: http://www.getpostman.com/.
Advanced REST Client: https://code.google.com/p/chrome-rest-client/.
Podsumowanie
W tym rozdziale przedstawiam podstawowe zaoenia technologii REST, opisaam API CRUD
oraz pokazaam, jak projektowa zasoby RESTful. W przykadach uyte zostay adnotacje JAX-RS 2.0, za pomoc ktrych mona reprezentowa metody HTTP, i API klienckie, przy uyciu
ktrych mona odnosi si do zasobw. Ponadto zrobiam przegld najlepszych praktyk projektowania usug typu RESTful.
W nastpnym rozdziale znajduje si rozszerzenie tych wiadomoci. Bardziej szczegowo poznasz zasady negocjowania treci, dostawcw jednostek w JAX-RS 2.0, techniki obsugi bdw,
sposoby kontrolowania wersji oraz kody odpowiedzi REST. Ponadto dowiesz si, w jaki sposb serwer moe wysya do klienta odpowiedzi przy uyciu strumieniowania i kawakowania.
30
Kup ksik
Pole ksik
Skorowidz
A
adnotacja
@Asynchronous, 72
@Consumes, 34
@DefaultValue, 90
@Produces, 33
@Suspended, 72
@VerifyValue, 50
@WebFilter, 82
NotNull, 50
Valid, 49
ValidateOnExecution, 49
adnotacje JAX-RS, 26
adres URL, 35
AMQP, Advanced Messaging Queing Protocol, 74
Apache Log4j, 47
API, 23
CRUD, 30
GitHub, 113
Graph portalu Facebook, 114
klienta, 25
reagujce na bieco, 98
REST, 46, 66, 68
REST Facebooka, 69
REST portalu GitHub, 111
REST portalu Twitter, 117
SSE, 102
aplikacje
chmurowe, 107
konsumenckie, 56
macierzyste, 57
sieciowe, 57
Kup ksik
B
Bean Validation, 49
bezpieczestwo, 45
bezpieczestwo metod, 18
bezstanowo, 16
biblioteka Log4j, 47
bd
406, 34
415, 34
420, 87
429, 80, 85
BOSH, 107
buforowanie, 64, 69, 86
buforowanie na serwerze, 70
Pole ksik
C
CRUD, create, read, update, delete, 19
czas
odpowiedzi, 64
ycia tokenu, 58
czasowniki, 113
czasowniki HTTP, 17, 21
D
dane
JSON, 39
osobowe, 48
dodanie metadanych, 25
dokumentowanie usug, 95
dostawca
tosamoci, 53
usug, 53, 56
jednostek, 35
dostp do zasobw REST, 25, 27
dyrektywa QoS, 100
dyrektywy nagwka Cache-Control, 65
dziaanie gniazd sieciowych, 105
E
eksplorator API Graph, 115
elementy architektury REST, 59
F
filtr
ograniczajcy dania, 82
rejestrujcy, 46
format JSON, 39
funkcje interfejsu EventSource, 102
funkcjonalnoci gniazd sieciowych, 106
G
gniazdo sieciowe, WebSocket, 104
grant autoryzacji, 57
H
HATEOAS, 18, 92, 93
I
idempotentno metod, 18
identyfikacja
metainformacji, 48
metod, 20
osoby, 48
reprezentacji zasobu, 22
identyfikator URI, 40
identyfikator URI zasobu, 19
implementacja
OAuth, 58
API, 23
informacje o awarii, 47
interfejs
EventSource, 102
ExceptionMapper, 52
Future, 71, 73
MessageBodyReader, 35
MessageBodyWriter, 35
internacjonalizacja, 91
IPN, Instant Payment Notification, 104
J
JavaScript, 102
JAXB, 39
JAX-RS, 23, 49
Jersey, 38, 58, 103
JSON, 38
JSON Patch, 76
K
klasa
AccessData, 83
ChunkedInput, 38
ChunkedOutput, 37
CoffeesResource, 49
Filter, 82
JSONArray, 39
JSONParser, 39
LoggingFilter, 47
RateLimiter, 81, 84
ResourceError, 52
ResponseBuilder, 43
StreamingOutput, 36
VariantListBuilder, 34
122
Kup ksik
Pole ksik
Skorowidz
klasy JAX-RS, 26
klient, 57
kod
200, 68
202, 73
304, 67, 69
406, 34
415, 34
420, 87
429, 80, 85
odpowiedzi, 42, 43, 50
kolejka wiadomoci, 74
komunikacja na bieco, 106
L
liczba da, 80
lista wariantw reprezentacji, 34
logowanie pojedyncze, SSO, 53
lokalizacja, 91
M
maper wyjtkw, 51
metadane, 24, 91
metoda
build(), 34
doFilter(), 84
getBookInJSON(), 35
getBookInXML(), 35
getSize(), 36
isCancelled(), 71
isDone(), 71
isReadable(), 36
isWriteable(), 36
JSON Patch, 76
prepareResponse(), 73
readFrom(), 36
selectVariant(), 34
writeTo(), 36
metody
HTTP, Patrz danie
idempotentne, 18
uwierzytelniania, 27
mikrousugi, 107110
model
dojrzaoci Richardsona, 16
PubSubHubbub, 99
strumieniowania, 100
N
nagwek
Accept, 33, 41
Cache-Control, 65, 66
Content-Language, 91
Content-Length, 37
Content-Type, 33
ETag, 65, 68
Expires, 65
Last-Modified, 65
Retry-After, 80, 84
X-RateLimit-Remaining, 81
nagwki buforowania
silne, 64
sabe, 64
narzdzie
Advanced REST client, 29
cURL, 27
JSONLint, 29
Postman, 27, 29
negocjacja treci, 32
poprzez adres URL, 35
poprzez nagwki HTTP, 32
niezawodno, 16
numer wersji, 41
w nagwku Accept, 41
w parametrze zapytaniowym, 41
O
OAuth, Open Authorization, 54
OAuth 1.0, 57
OAuth 2.0, 58
obiekt
cacheControl, 66
Variant, 34
obsuga
bdw, 51, 113, 116, 119
kodw odpowiedzi, 50
wyjtkw, 50
odpowiedzi REST, 31
ograniczanie liczby da, 8082, 114, 117
okrelanie
wersji, 40
wersji API, 41
OpenID Connect, 59
operacje
asynchroniczne, 70
dugotrwae, 70
123
Kup ksik
Pole ksik
P
pliki WAR/EAR, 108
POJO, 39
poprawno usug REST, 49
portal Facebook, 114
czynnoci zasobw, 116
obsuga bdw, 116
ograniczanie liczby da, 117
wersjonowanie, 116
portal GitHub, 111
akcje zasobw, 113
obsuga bdw, 113
ograniczanie liczby da, 114
pobieranie informacji, 112
wersjonowanie, 113
portal Twitter, 117
dziaania na zasobach, 118
obsuga bdw, 119
wersjonowanie, 119
POX, Plain Old XML, 17
procedura
bookavailable, 102
newbookadded, 102
procedury nasuchowe, 102
proces
asynchronicznego przetwarzania, 71
autoryzacji, 55
projektowanie
wydajnych rozwiza, 63
zasobw, 29, 31
protok
AMQP, 74
ATOM/RSS, 99
OAuth, 55, 56
SAML, 54
WebSocket, 104
XMPP, 106
przetwarzanie
asynchroniczne, 70
danych JSON, 39
niskopoziomowe, 39
PuSH, 99, 104
Q
QoS, Quality of Service, 100
R
rejestrowanie
informacji, 46, 47
treci, 48
da, 86
REST, Representational State Transfer, 15
RESTEasy, 69
rodzaje
odpowiedzi REST, 31
stronicowania, 88
rola
identity provider, 53
klient, 56
principal, 53
service provider, 53
serwer, 56
uytkownik, 56
rozszerzalno, 94
S
SAML, Security Assertion Markup Language, 53
serializacja zasobw, 35
serwer, 100
skalowalno, 16
SOAP, Simple Object Access Protocol, 15
sondowanie, polling, 98
sondowanie spowolnione, 107
sprawdzanie poprawnoci
danych, 29
usug REST, 49
SSE, Server-Send Events, 100
SSL, 58
SSO, Single Sign-On, 53
staa REQ_LIMIT, 82
status
COMPLETED, 75
PROCESSING, 75
statyczna negocjacja treci, 34
stronicowanie
czasowe, 88
kursorowe, 89
odpowiedzi, 87
offsetowe, 88
struktura ConcurrentHashMap, 83
strumieniowanie, 86
systemy rejestrowania danych, 48
szyfrowanie, 58
124
Kup ksik
Pole ksik
Skorowidz
T
tablica JSONArray, 90
technologia
BOSH, 107
OpenID Connect, 59
REST, 11, 97
SOA, 15
termin wyganicia, 74
testowanie
usug, 95
typu RESTful, 25
token, 54
dostpu, 57
odwieania, 57, 58
tworzenie
API REST, 29
asynchronicznego zasobu, 72
listy wariantw reprezentacji, 34
zasobu RESTful, 23
typ MIME, 34
typy
nagwkw buforowania, 64
znacznikw ETag, 68
U
uchwyt sieciowy, WebHook, 103
ukad projektu, 81, 90
unikanie sondowania, 86
usuga
GitHub, 104
IPN, 104
usugi typu RESTful, 19
utrata poczenia, 101
uwierzytelnianie, 27, 53
uzgodnienie, handshake, 107
uycie gniazd sieciowych, 106
W
wdraanie usug typu RESTful, 25
wersjonowanie API, 40
weryfikacja poprawnoci danych, 50
wze komunikacyjny, 99
wiadomo
SSE, 101
SSE z identyfikatorem, 101
wizanie
identyfikatora ze zdarzeniem, 101
nazw ze zdarzeniami, 101
widoczno, 16
WSDL, Web Service Description Language, 15
wyjtek, 50
CoffeeNotFoundException, 51
wykrywalno, 45
wysyanie
nagwka Accept, 42
numeru wersji, 41
wzorce REST, 42
X
XMPP, 106
Z
zaciemnianie danych poufnych, 47
zasady
buforowania, 64
projektowania, 79
zasoby
asynchroniczne, 73
REST, 17
RESTful, 19, 22
zdalne wywoywanie procedur, 17
zdarzenia
SSE, 100103, 107
uchwytw sieciowych, 103
ziarno JAXB, 39
znaczniki ETag, 67, 68
dania
curl, 27, 85
w ptlach, 86
danie
DELETE, 21
GET, 21
HEAD, 22
OAuth, 55
PATCH, 74, 76
POST, 21, 26
PUT, 21
Upgrade, 104
125
Kup ksik
Pole ksik
126
Kup ksik
Pole ksik