Soumettre la recherche
Mettre en ligne
Hypermedia API’s
•
2 j'aime
•
699 vues
3camp
Suivre
Victor Welling - Coolblue – Hypermedia API’s
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 79
Recommandé
Html, CSS, Javascript, Jquery, Meteor應用
Html, CSS, Javascript, Jquery, Meteor應用
LearningTech
Practical PHP by example Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
Coding part
Coding part
Sanjay Gupta
MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi Devices
Hasan Hosgel
MVC and Razor - Doc. v1.2
MVC and Razor - Doc. v1.2
Naji El Kotob
ColdFusion ORM
ColdFusion ORM
Denard Springle IV
Mvc & java script
Mvc & java script
Eyal Vardi
Recommandé
Html, CSS, Javascript, Jquery, Meteor應用
Html, CSS, Javascript, Jquery, Meteor應用
LearningTech
Practical PHP by example Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
Coding part
Coding part
Sanjay Gupta
MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi Devices
Hasan Hosgel
MVC and Razor - Doc. v1.2
MVC and Razor - Doc. v1.2
Naji El Kotob
ColdFusion ORM
ColdFusion ORM
Denard Springle IV
Mvc & java script
Mvc & java script
Eyal Vardi
E-podręcznik – przyszłość edukacji
E-podręcznik – przyszłość edukacji
3camp
Podążaj za marzeniami
Podążaj za marzeniami
3camp
Mapp3
Mapp3
3camp
Toostis
Toostis
3camp
Metadane i społeczeństwo a zarządzanie wiedzą
Metadane i społeczeństwo a zarządzanie wiedzą
3camp
Media społecznościowe w słuzbie alkoholu.
Media społecznościowe w słuzbie alkoholu.
3camp
Aevintagestore
Aevintagestore
3camp
Fundusze UE dla e-biznesu
Fundusze UE dla e-biznesu
3camp
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
3camp
3camp Logo Konkurs
3camp Logo Konkurs
3camp
Nasza-Klasa
Nasza-Klasa
3camp
Kuba Marchwicki - Speechstorm - Usability w mediach innych niż www
Kuba Marchwicki - Speechstorm - Usability w mediach innych niż www
3camp
3camp PTI
3camp PTI
3camp
Architektura serwisów webowych - szybko i boleśnie
Architektura serwisów webowych - szybko i boleśnie
3camp
Ittechnology
Ittechnology
3camp
Online User Experience
Online User Experience
3camp
1 -knp labs--leszek-prabucki--wprowadzenie do bdd, czyli co jest zlego w star...
1 -knp labs--leszek-prabucki--wprowadzenie do bdd, czyli co jest zlego w star...
3camp
Gobarbra
Gobarbra
3camp
Aplikacja po drugiej stronie lustra, czyli rzeczywistość o magię rozszerzona.
Aplikacja po drugiej stronie lustra, czyli rzeczywistość o magię rozszerzona.
3camp
Mobile Game Development Process
Mobile Game Development Process
3camp
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
tristansokol
Rich Results and Structured Data
Rich Results and Structured Data
SMA Marketing
Contenu connexe
En vedette
E-podręcznik – przyszłość edukacji
E-podręcznik – przyszłość edukacji
3camp
Podążaj za marzeniami
Podążaj za marzeniami
3camp
Mapp3
Mapp3
3camp
Toostis
Toostis
3camp
Metadane i społeczeństwo a zarządzanie wiedzą
Metadane i społeczeństwo a zarządzanie wiedzą
3camp
Media społecznościowe w słuzbie alkoholu.
Media społecznościowe w słuzbie alkoholu.
3camp
Aevintagestore
Aevintagestore
3camp
Fundusze UE dla e-biznesu
Fundusze UE dla e-biznesu
3camp
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
3camp
3camp Logo Konkurs
3camp Logo Konkurs
3camp
Nasza-Klasa
Nasza-Klasa
3camp
Kuba Marchwicki - Speechstorm - Usability w mediach innych niż www
Kuba Marchwicki - Speechstorm - Usability w mediach innych niż www
3camp
3camp PTI
3camp PTI
3camp
Architektura serwisów webowych - szybko i boleśnie
Architektura serwisów webowych - szybko i boleśnie
3camp
Ittechnology
Ittechnology
3camp
Online User Experience
Online User Experience
3camp
1 -knp labs--leszek-prabucki--wprowadzenie do bdd, czyli co jest zlego w star...
1 -knp labs--leszek-prabucki--wprowadzenie do bdd, czyli co jest zlego w star...
3camp
Gobarbra
Gobarbra
3camp
Aplikacja po drugiej stronie lustra, czyli rzeczywistość o magię rozszerzona.
Aplikacja po drugiej stronie lustra, czyli rzeczywistość o magię rozszerzona.
3camp
Mobile Game Development Process
Mobile Game Development Process
3camp
En vedette
(20)
E-podręcznik – przyszłość edukacji
E-podręcznik – przyszłość edukacji
Podążaj za marzeniami
Podążaj za marzeniami
Mapp3
Mapp3
Toostis
Toostis
Metadane i społeczeństwo a zarządzanie wiedzą
Metadane i społeczeństwo a zarządzanie wiedzą
Media społecznościowe w słuzbie alkoholu.
Media społecznościowe w słuzbie alkoholu.
Aevintagestore
Aevintagestore
Fundusze UE dla e-biznesu
Fundusze UE dla e-biznesu
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
Pokaż kotku, co masz w środku profilowanie aplikacji z xhprof
3camp Logo Konkurs
3camp Logo Konkurs
Nasza-Klasa
Nasza-Klasa
Kuba Marchwicki - Speechstorm - Usability w mediach innych niż www
Kuba Marchwicki - Speechstorm - Usability w mediach innych niż www
3camp PTI
3camp PTI
Architektura serwisów webowych - szybko i boleśnie
Architektura serwisów webowych - szybko i boleśnie
Ittechnology
Ittechnology
Online User Experience
Online User Experience
1 -knp labs--leszek-prabucki--wprowadzenie do bdd, czyli co jest zlego w star...
1 -knp labs--leszek-prabucki--wprowadzenie do bdd, czyli co jest zlego w star...
Gobarbra
Gobarbra
Aplikacja po drugiej stronie lustra, czyli rzeczywistość o magię rozszerzona.
Aplikacja po drugiej stronie lustra, czyli rzeczywistość o magię rozszerzona.
Mobile Game Development Process
Mobile Game Development Process
Similaire à Hypermedia API’s
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
tristansokol
Rich Results and Structured Data
Rich Results and Structured Data
SMA Marketing
Introduction to Azure DocumentDB
Introduction to Azure DocumentDB
Alex Zyl
Api vortrag
Api vortrag
Tobias Wolf
Designing beautiful REST APIs
Designing beautiful REST APIs
Tomek Cejner
Consumer-Centric API Design
Consumer-Centric API Design
OPEN KNOWLEDGE GmbH
Chatting with HIpChat: APIs 101
Chatting with HIpChat: APIs 101
colleenfry
WordCamp Chiclana 2020 Crea schemas sin plugins
WordCamp Chiclana 2020 Crea schemas sin plugins
Closemarketing
Accepting payments using Stripe and Elixir
Accepting payments using Stripe and Elixir
Andrew Forward
Working and Winning With GraphQL
Working and Winning With GraphQL
Mbosinwa Awunor
Spca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_libraries
NCCOMMS
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB
Abusing text/template for data transformation
Abusing text/template for data transformation
Arnaud Porterie
Elasticsearch in 15 Minutes
Elasticsearch in 15 Minutes
Karel Minarik
Data Modeling for Performance
Data Modeling for Performance
Michael Dwan
Modeling for Performance
Modeling for Performance
MongoDB
Elasticsearch
Elasticsearch
Michal Vrchota
Agile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collection
JoEllen Carter
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
MarcinStachniuk
Consumer-centric API Design
Consumer-centric API Design
OPEN KNOWLEDGE GmbH
Similaire à Hypermedia API’s
(20)
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
Rich Results and Structured Data
Rich Results and Structured Data
Introduction to Azure DocumentDB
Introduction to Azure DocumentDB
Api vortrag
Api vortrag
Designing beautiful REST APIs
Designing beautiful REST APIs
Consumer-Centric API Design
Consumer-Centric API Design
Chatting with HIpChat: APIs 101
Chatting with HIpChat: APIs 101
WordCamp Chiclana 2020 Crea schemas sin plugins
WordCamp Chiclana 2020 Crea schemas sin plugins
Accepting payments using Stripe and Elixir
Accepting payments using Stripe and Elixir
Working and Winning With GraphQL
Working and Winning With GraphQL
Spca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_libraries
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
MongoDB Analytics: Learn Aggregation by Example - Exploratory Analytics and V...
Abusing text/template for data transformation
Abusing text/template for data transformation
Elasticsearch in 15 Minutes
Elasticsearch in 15 Minutes
Data Modeling for Performance
Data Modeling for Performance
Modeling for Performance
Modeling for Performance
Elasticsearch
Elasticsearch
Agile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collection
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
Consumer-centric API Design
Consumer-centric API Design
Plus de 3camp
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
3camp
HTTPS bez wymówek
HTTPS bez wymówek
3camp
Jak udokumentować bazę danych
Jak udokumentować bazę danych
3camp
ORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowania
3camp
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
3camp
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
3camp
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie Android
3camp
Learn you some rx for the greater good
Learn you some rx for the greater good
3camp
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
3camp
Reakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyce
3camp
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
3camp
AngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektu
3camp
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
3camp
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
3camp
Artur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupach
3camp
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
3camp
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
3camp
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
3camp
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
3camp
Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
3camp
Plus de 3camp
(20)
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
HTTPS bez wymówek
HTTPS bez wymówek
Jak udokumentować bazę danych
Jak udokumentować bazę danych
ORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowania
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Learn you some rx for the greater good
Learn you some rx for the greater good
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
Reakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyce
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
AngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektu
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Artur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupach
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
Hypermedia API’s
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
{
"_links" : { "self" : { "href" : "/products/32154" }, "profile" : { "href" : "http://example.com/schema/product" }, "add-to-shopping-cart" : { "href" : "/shopping-cart/{shoppingCartId}/lines", "templated" : true } }, "productId" : 32154, "name" : "Sungsam iClone IX", "brand" : "Sungsam", "availability" : "on stock", "price" : 699.95 }
52.
53.
<resource href="/products/32154">
<link rel="profile" href="http://example.com/schema/product"/> <link rel="add-to-shopping-cart“ href="/shopping-cart/{shoppingCartId}/lines“ templated="true"/> <productId>32154</product> <name>Sungsam iClone IX</name> <brand>Sungsam</brand> <availability>on stock</availability> <price>699.95</price> </resource>
54.
55.
56.
{
"_links" : { "self" : { "href" : "/shopping-cart/794" }, "profile" : { "href" : "http://example.com/schema/shopping-cart" }, "order" : { "href" : "/orders" } }, "_embedded" : { "line" : [{ "_links" : { "self" : { "href" : "/shopping-cart/794/lines/1" }, "product" : { "href" : "/product/32154" } }, "productId" : 32154, "description" : "Sungsam iClone IX", "quantity" : 1, "price" : 699.95 }] }, "priceTotal" : 699.95 }
57.
58.
59.
60.
GET / HTTP/1.1 HTTP/1.1
200 OK { "_links" : { "self" : { "href" : "/" }, "profile" : { "href" : "http://example.com/schema/index" }, "orders" : { "href" : "/orders" }, "products" : { "href" : "/products{?productId,name,brand}", "templated" : true }, "shopping-carts" : { "href" : "/shopping-carts" }, } }
61.
GET /products?brand=Sungsam HTTP/1.1 HTTP/1.1
200 OK { "_links" : { [...] "products" : { "href" : "/products{?productId,name,brand} ", "templated" : true } }, "_embedded" : { "product" : [{ "_links" : { "self" : { "href" : "/products/32154" } }, "productId" : 32154, "name" : "Sungsam iClone IX" }] } }
62.
GET /products/32154 HTTP/1.1 HTTP/1.1
200 OK { "_links" : { "self" : { "href" : "/products/32154" }, "profile" : { "href" : "http://example.com/schema/product" }, "add-to-shopping-cart" : { "href" : "/shopping-cart/{shoppingCartId}/lines", "templated" : true } }, "productId" : 32154, "name" : "Sungsam iClone IX", "brand" : "Sungsam", "availability" : "on stock", "price" : 699.95 }
63.
POST /shopping-cart/794/lines HTTP/1.1 {
"product" : { "href" : "/products/32154" }, "quantity" : 1 } [...]
64.
HTTP/1.1 201 Created Location:
/shopping-cart/794/lines/1 { "_links" : { "self" : { "href" : "/shopping-cart/794/lines/1" }, "profile" : { "href" : "http://example.com/schema/shopping-cart/line" }, "shopping-cart" : { "href" : "/shopping-cart/794" }, "product" : { "href" : "/product/32154" } }, "productId" : 32154, "description" : "Sungsam iClone IX", "quantity" : 1, "price" : 699.95 }
65.
DELETE /shopping-cart/794/lines/1 HTTP/1.1 HTTP/1.1
204 No Content
66.
GET /shopping-cart/794 HTTP/1.1 HTTP/1.1
200 OK { "_links" : { [...] "lines" : { "href" : "/lines" }, "order" : { "href" : "/orders" } }, "_embedded" : { "line" : [{ "_links" : { "self" : { "href" : "/shopping-cart/794/lines/1" } }, [...] }] }, "priceTotal" : 699.95 }
67.
POST /orders HTTP/1.1 {
"shoppingCart" : { "href" : "/shopping-cart/794" } }
68.
HTTP/1.1 201 Created Location:
/orders/543 { "_links" : { [...] }, "_embedded" : { "line" : [{ "_links" : { "self" : { "href" : "/orders/543/lines/1" } }, [...] }], "payment" : [] }, "priceTotal" : 699.95, "address" : null, "customer" : null, "status" : "unprocessed", "error" : "Missing or invalid information." }
69.
PUT /orders/543 HTTP/1.1 {
"address" : { "street" : "Samplelane", "houseNumber" : "1337", "city" : "Demotown" }, "customer" : { "name" : "John Doe", "email" : "john@doe.com" } }
70.
HTTP/1.1 200 OK {
"_links" : { [...] "payment" : { "href" : "/orders/543/payments" } }, [...] "address" : { "street" : "Samplelane", "houseNumber" : "1337", "city" : "Demotown" }, "customer" : { "name" : "John Doe", "email" : "john@doe.com" }, "status" : "unprocessed", "error" : "Missing payment." }
71.
POST /orders/543/payments HTTP/1.1 {
"amount" : 699.95, "type" : "creditCard", "issuer" : "Visa" }
72.
HTTP/1.1 201 Created Location:
/orders/543/payments/1 { "_links" : { "self" : { "href" : "/orders/543/payments/1" }, "profile" : { "href" : "http://example.com/schema/payment" }, "payment" : { "href" : "/orders/543/payments" } "order" : { "href" : "/orders/543" } }, "amount" : 699.95, "type" : "creditCard", "issuer" : "Visa", "cardHolder" : "", "number" : "", "cvc" : "", "expirationDate" : "", "status" : "unprocessed", "error" : "Missing or invalid information." }
73.
PUT /orders/543/payments/1 HTTP/1.1 {
"cardHolder" : "J. Doe", "number" : "4111111111111111", "cvc" : "123", "expirationDate" : "2020-01" }
74.
HTTP/1.1 200 OK {
"_links" : { "self" : { "href" : "/orders/543/payments/1" }, "profile" : { "href" : "http://example.com/schema/payment" }, "payment" : { "href" : "/orders/543/payments" } "order" : { "href" : "/orders/543" } }, "amount" : 699.95, "type" : "creditCard", "issuer" : "Visa", "cardHolder" : "J. Doe", "number" : "************1111", "cvc" : "***", "expirationDate" : "2020-01" "status" : "processed", "error" : "" }
75.
GET /orders/543 HTTP/1.1 HTTP/1.1
200 OK { [...] "_embedded" : { [...] "payment" : [{ "_links" : { "self" : { "href" : "/orders/543/payments/1" }, "amount" : 699.95, [...] "status" : "processed", "error" : "" }, }] }, [...] "status" : "processed", "error" : "" }
76.
77.
GET / HTTP/1.1 Accept:
application/hal+json; profile=http://example.com/schema-v2; application/hal+json; profile=http://example.com/schema-v1; q=0.8