Presentation sur la contrainte d'architecture HATEOAS et comment le framework Spring nous facilite son implementation.
Source code : https://github.com/YoannBuch/simple-spring-restbucks
Fait par l'equipe de http://findtheflow.io, un outil qui permet d'analyser et visualiser des executions d'applications Java.
Companion slides for Stormpath CTO and Co-Founder Les REST API Security Webinar. This presentation covers all the RESTful best practices learned building the Stormpath APIs. This webinar is full of best practices learned building the Stormpath API and supporting authentication for thousands of projects. Topics Include:
- HTTP Authentication
- Choosing a Security Protocol
- Generating & Managing API Keys
- Authorization & Scopes
- Token Authentication with JSON Web Tokens (JWTs)
- Much more...
Stormpath is a User Management API that reduces development time with instant-on, scalable user infrastructure. Stormpath's intuitive API and expert support make it easy for developers to authenticate, manage and secure users and roles in any application.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Companion slides for Stormpath CTO and Co-Founder Les REST API Security Webinar. This presentation covers all the RESTful best practices learned building the Stormpath APIs. This webinar is full of best practices learned building the Stormpath API and supporting authentication for thousands of projects. Topics Include:
- HTTP Authentication
- Choosing a Security Protocol
- Generating & Managing API Keys
- Authorization & Scopes
- Token Authentication with JSON Web Tokens (JWTs)
- Much more...
Stormpath is a User Management API that reduces development time with instant-on, scalable user infrastructure. Stormpath's intuitive API and expert support make it easy for developers to authenticate, manage and secure users and roles in any application.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
This presentation walks through essential points for developing and working with REST APIs or web services to communicate through various platforms. This also explains HTTP methods.
I needed to ramp-up my Dev team on RESTful systems. Existing content on this topic was either too terse or too verbose.
So I created this deck as a necessary and sufficient tutorial on REST. The goal was for my Devs to walk away with enough of an understanding to be (and want to be) dangerous.
So here it is...REST in 18 slides (ok, 21 slides if you include Cover, References, and Thank You). This is more text-heavy than I prefer, but I needed an excuse to try out SlideShare so I opted for a presentation format.
Learn how to build RESTful API using Node JS with Express Js Framework. Database used is Mongo DB (Mongoose Library). Learn Step by step what is Node JS, Express, API and Mongo DB. Explain and sample code step to build RESTful API
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
REST Assured is a Java library .Which, provides a domain-specific language (DSL) for writing powerful, maintainable tests for Restful APIs.
Library behaves like a headless Client to access REST web services.
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
REST Service Authetication with TLS & JWTsJon Todd
Many companies are adopting micro-services architectures to promote decoupling and separation of concerns in their applications. One inherent challenge with breaking applications up into small services is that now each service needs to deal with authenticating and authorizing requests made to it. We present a clean way to solve this problem Json Web Tokens (JWT) and TLS using Java.
This presentation walks through essential points for developing and working with REST APIs or web services to communicate through various platforms. This also explains HTTP methods.
I needed to ramp-up my Dev team on RESTful systems. Existing content on this topic was either too terse or too verbose.
So I created this deck as a necessary and sufficient tutorial on REST. The goal was for my Devs to walk away with enough of an understanding to be (and want to be) dangerous.
So here it is...REST in 18 slides (ok, 21 slides if you include Cover, References, and Thank You). This is more text-heavy than I prefer, but I needed an excuse to try out SlideShare so I opted for a presentation format.
Learn how to build RESTful API using Node JS with Express Js Framework. Database used is Mongo DB (Mongoose Library). Learn Step by step what is Node JS, Express, API and Mongo DB. Explain and sample code step to build RESTful API
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
REST Assured is a Java library .Which, provides a domain-specific language (DSL) for writing powerful, maintainable tests for Restful APIs.
Library behaves like a headless Client to access REST web services.
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
REST Service Authetication with TLS & JWTsJon Todd
Many companies are adopting micro-services architectures to promote decoupling and separation of concerns in their applications. One inherent challenge with breaking applications up into small services is that now each service needs to deal with authenticating and authorizing requests made to it. We present a clean way to solve this problem Json Web Tokens (JWT) and TLS using Java.
Securing RESTful APIs using OAuth 2 and OpenID ConnectJonathan LeBlanc
Constructing a successful and simple API is the lifeblood of your developer community, and REST is a simple standard through which this can be accomplished. As we construct our API and need to secure the system to authenticate and track applications making requests, the open standard of OAuth 2 provides us with a secure and open source method of doing just this. In this talk, we will explore REST and OAuth 2 as standards for building out a secure API infrastructure, exploring many of the architectural decisions that PayPal took in choosing variations in the REST standard and specific implementations of OAuth 2.
It's been an amazing year for Spring! 2013 saw the Spring family join Pivotal where - along with Cloud Foundry and our data driven technologies (the Pivotal HD Hadoop distribution, the GemFire data grid, and the RabbitMQ message broker) - Spring supports today's application workloads and profiles. Today's Spring embraces Java 8, Scala, Groovy, provides a best-in-class REST stack, supports the open web, mobile applications, big-data applications and batch workloads. Today's Spring is easy to get started with, easy to learn, and embraces conventions over configuration. Today's Spring is part of the Spring.IO platform. Today's Spring is...Pivotal. Join Spring developer advocate Josh Long as he re-introduces you to today's Spring, a Spring you may not have seen yet.
There is a video for this talk, as well: http://www.youtube.com/watch?v=_twyZL_AGCI - Enjoy!
Дмитрий Красун: Сегодня вы уйдете с новым представлением о RESTOleg Poludnenko
Доклад с PUG#8 https://www.facebook.com/events/1730209913929923/
- Заблуждения о REST, и почему они мешают создавать прекрасные API
- Синхронизируем понимание REST и текущих тенденций в “API-строении”
Talk about Salesforce REST API: how to perform query, search or single-record CRUD operations; how to retrieve versions, list of custom object and object metadata and field metadata and presentation of demo page performing these requests
Best Practices for Architecting a Pragmatic Web API.Mario Cardinal
This presentation teach how to design a real-world and pragmatic web API. It draws from the experience Mario Cardinal have gained over the years being involved architecting many Web API. This presentation begins by differencing between a Web and a REST API, and then continue with the design process. We conclude with the core learnings of the session which is a review of the best practices when designing a web API. Armed with skills acquired, you can expect to see significant improvements in your ability to design a pragmatic web API.
JAX-RS. Developing RESTful APIs with JavaJerry Kurian
The presentation discusses the basic REST principles and how to define a RESTful API.
The presentation then looks at the various facilities provided by JAX-RS for developing REST API using Java.
All the supported annotations and its usage are discussed with example
Primary focus of this presentation is on the hypermedia as the engine of application state (HATEOAS) and how HTTP APIs may benefit from it. Provides sneak peek into HAL media type & gives an overview of hypermedia support in Java tools (JAX-RS / HalBuilder and Spring HATEOAS) along with practical suggestions for server-side design of hypermedia API. Also includes quick overview of Richardson Maturity Model based on a set of examples, current API trends.
Explore the innovative world of trenchless pipe repair with our comprehensive guide, "The Benefits and Techniques of Trenchless Pipe Repair." This document delves into the modern methods of repairing underground pipes without the need for extensive excavation, highlighting the numerous advantages and the latest techniques used in the industry.
Learn about the cost savings, reduced environmental impact, and minimal disruption associated with trenchless technology. Discover detailed explanations of popular techniques such as pipe bursting, cured-in-place pipe (CIPP) lining, and directional drilling. Understand how these methods can be applied to various types of infrastructure, from residential plumbing to large-scale municipal systems.
Ideal for homeowners, contractors, engineers, and anyone interested in modern plumbing solutions, this guide provides valuable insights into why trenchless pipe repair is becoming the preferred choice for pipe rehabilitation. Stay informed about the latest advancements and best practices in the field.
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)MdTanvirMahtab2
This presentation is about the working procedure of Shahjalal Fertilizer Company Limited (SFCL). A Govt. owned Company of Bangladesh Chemical Industries Corporation under Ministry of Industries.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...Amil Baba Dawood bangali
Contact with Dawood Bhai Just call on +92322-6382012 and we'll help you. We'll solve all your problems within 12 to 24 hours and with 101% guarantee and with astrology systematic. If you want to take any personal or professional advice then also you can call us on +92322-6382012 , ONLINE LOVE PROBLEM & Other all types of Daily Life Problem's.Then CALL or WHATSAPP us on +92322-6382012 and Get all these problems solutions here by Amil Baba DAWOOD BANGALI
#vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore#blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #blackmagicforlove #blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #Amilbabainuk #amilbabainspain #amilbabaindubai #Amilbabainnorway #amilbabainkrachi #amilbabainlahore #amilbabaingujranwalan #amilbabainislamabad
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
2. Qui sommes nous ?
➔ 2 développeurs
➔ Lancent une entreprise autour d’un outil de développement
http://findtheflow.io
➔ Focalisent sur la visualisation et analyse des exécutions de programmes
➔ Utilisent de nombreux projets de Spring : Boot, MVC, HATEOAS,
Websocket, Integration, Batch, etc.
7. Modèle de maturité REST
source: http://martinfowler.com/articles/richardsonMaturityModel.html
Utiliser HTTP
Modélisation en
resources
CRUD opération
HATEOAS
8. Notre exemple d’application
Construire une API
Consulter le menu
Commander des boissons
Payer la commande
Vérifier le statut de préparation de commande
...
R E S T B U C K S
Source: “REST in Practice: Hypermedia and Systems Architecture”
9. Level 0: POX
Une URI, une methode
SOAP, XML RPC, POX
Request Response
POST /coffeeService HTTP/1.1
Content-Type: application/xml
<request xmlns=”http://restbucks.com”>
<placeOrder>
<customer>Mike</customer>
<location>takeAway</location>
<items>...</items>
</placeOrder>
…
</request>
HTTP/1.1 200 OK
Content-Type: application/xml
<response xmlns=”http://restbucks.com”>
<success>true</success>
<orderConfirmation>
<orderId>1234</orderId>
</orderConfirmation>
<error/>
</response>
10. Level 1: Resources
URI unique pour chaque ressource
Un seul verbe HTTP sans sémantique
Request Response
POST /orders HTTP/1.1
Content-Type: application/xml
<orderRequest>
<operation>create</operation>
<customer>Mike</customer>
<location>takeAway</location>
<items>...</items>
…
</orderRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
<orderResponse>
<success>true</success>
<orderId>1234</orderId>
<error/>
</orderResponse>
11. Level 2: HTTP verbs
Multiples URIs, multiples verbes
Status code
Request Response
POST /orders HTTP/1.1
Content-Type: application/xml
<order>
<customer>Mike</customer>
<location>takeAway</location>
<items>...</items>
…
</order>
GET /orders/1234
PUT /orders/1234
DELETE /orders/1234
HTTP/1.1 201 CREATED
Content-Type: application/xml
Location: http://restbucks.com/orders/1234
<order>
<customer>Mike</customer>
<location>takeAway</location>
<items>...</items>
<status>payment-expected</status>
</order>
12. Hypermedia As The Engine Of Application State
Level 3 : HATEOAS
protocole Objectif
état
Transfert des liens
dans des ressources
13. Level 3: HATEOAS
Submitted Paid
Canceled
Preparing Completed
place
update
cancel
pay
check status
deliver
planned
Transition d’états d’une commande
HATEOAS => Définir les transitions d’états dans la représentation des ressources
17. Hypermedia et Spring : Spring HATEOAS
Introduit concepts de ressources et liens
Resource(s), ResourceSupport, Link
Facilite la génération d’URIs
linkTo et methodOn
Serialize au format HAL (XML et JSON)
Facilite la consommation des liens
HalkLinkDiscoverer, Traverson
Facilite l’assemblage des ressources
ResourceAssembler
18. Liens
Link link = new Link("http://localhost:8080/something");
assertThat(link.getHref(), is("http://localhost:8080/something"));
assertThat(link.getRel(), is(Link.SELF));
Link link = new Link("http://localhost:8080/something", "my-rel");
assertThat(link.getHref(), is("http://localhost:8080/something"));
assertThat(link.getRel(), is("my-rel"));
Source : http://docs.spring.io/spring-hateoas/docs/0.19.0.RELEASE/reference/html
20. Générer des URIs
Link link = linkTo(methodOn(PersonController.class).show(2L)).withSelfRel();
assertThat(link.getHref(), is("http://localhost:8080//people/2")));
Découvrir et récuperer des liens
String content = "{'_links' : { 'foo' : { 'href' : '/foo/bar' }}}";
LinkDiscoverer discoverer = new HalLinkDiscoverer();
Link link = discoverer.findLinkWithRel("foo", content);
assertThat(link.getHref(), is("/foo/bar"));
22. Consommer une API hypermedia - JavaScript
// traverson
traverson.json.from("http://api.github.com")
.newRequest()
.follow('repository_url', 'branches_url')
.withTemplateParameters({
owner: 'spring-projects',
repo: 'spring-hateoas',
branch: 'master'
}).getResource(function(err, resource) {
if (err) { console.log(err); return; }
console.log(resource);
// do something else
})
})
// jquery ajax
$.get("http://api.github.com", function(resource) {
var uri = nextUri(resource, 'repository_url')
uri = uri.replace(/{owner}/, 'spring-projects')
uri = uri.replace(/{repo}/, 'spring-hateoas')
$.get(uri, function(resource) {
uri = nextUri(resource, 'branches_url')
uri = uri.replace(/{/branch}/, '/master')
$.get(uri, function(resource) {
console.log(resource);
// do something else
})
})
})
function nextUri(resource, link) {
return resource[link]
}
https://github.com/basti1302/traverson-hal
23. HATEOAS
API explorable et auto-descriptive
➔Meilleure adoption de l’API
➔Mettre en avant des nouvelles fonctionnalités
Logique client simple
➔Pas d’URIs en dur
➔Client suit un protocole
Couplage faible entre serveur et client
➔Client résistant au changement des URIs
➔Moins de dépendences aux URI templates ou
langages de définition (ex. WSDL, WADL)
24. Pour aller plus loin
Livre : “REST in Practice: Hypermedia and Systems Architecture”
Spring Restbucks (et notre notre version simplifiee)
Bons examples en production (FoxyCart, PayPal, etc.)
Spring Data REST
HAL Browser
Spring REST Docs
CURIEs
Traitement des erreurs avec vnd.error
ice breakers:
rappeler le talk de Spring Cloud?
demander a l’audience leur niveau avec REST et HATEOAS
ha-TAY-oh-ahss
HTML supports hypermedia (urls and forms)
When browsing the Web, we’re used to navigating between pages by clicking links or completing and submitting forms.
In a typical e-commerce solution such as amazon.com, the server generates web pages with links on them that corral the user through the process of selecting goods, purchasing, and arranging delivery.
consulter les articles -> ajouter au panier -> passer la commande (livraison, paiement, confirmation)
un point d’entree, suivre les etapes;
A quoi ça ressemble dans une intéraction entre machines?
https://api.github.com
https://api.github.com/users/spring-projects
https://api.github.com/repos/spring-projects/spring-hateoas
= ou se situe l’hypermedia dans architecture REST (Representational State Transfer)
http://martinfowler.com/articles/richardsonMaturityModel.html
Level 0:
une URI, une methode
SOAP, XML RPC, POX
blackbox
Level 1:
Chaque ressource est identifiée par une URI unique
une seule verbe HTTP qui n’a pas de sémantique
Level 2:
Multiples URIs, multiples verbes + status code
CRUD
Level 3:
ressources sont auto-descriptives
RESTful
= HATEOAS c’est quoi
hypermedia as the engine of application state
hypermedia: a hypermedia system is characterized by the transfer of links in the resource representations exchanged by the participants in an application protocol
état d’application: objectif applicatif | protocol des interactions | snapshot d’execution du protocol
ex. restbucks: commander un café | initier une commande, payer |
L’etat / la représentation d’une ressource est composé de:
les valeurs de ses attributs
les liens vers d’autres ressources
les liens representant une transition possible vers un état futur de la ressource actuelle
diagramme etat
diagramme complet pour la ressource commande
standard = facile a implementer et consommer
format = liens vers ressources + annotations semantiques (comment interpreter la ressource)
rel = what is this link?
method, doc contextuelle, accepts/produces media types
http://ionwg.github.io/draft-ion.html
Demo
Level 2:
Source code
Creation commande
PB: faut connaitre le lien
Location header
Cancel
Payment
Montrer que c’est pas explorable, pas de protocole
Level 3:
Browser
Montrer ce que l’on veut obtenir
Source code
Ressource racine
Creation ressource
Creation liens avec linkTo
Creation liens en fonction de l’etat de la ressource
REST Client
payment scenario
Automated testing
suivi du protocole
trouver liens dans les reponses
jsonpath
utilisation de RestTemplate (et non Traverson)
Traverson ne supporte que GET => RestTemplate
jquery ajax: recuperer la resource, parser l’uri, remplacer les parametres puis répéter le même process => callback pyramid
traverson: suivre une séquence de liens jusqu’à la resource target
éviter callback pyramid
https://blog.codecentric.de/en/2013/11/traverson/
explorable API / inline documentation
permet aux développeurs de découvrir l’API et structure de données facilement, au lieu de switcher constamment entre code et la doc => meilleure adoption de l’API
Moins besoin de se referer a la doc
simple client logic (no more uri hardcoding)
Le client suit les uri au lieu de les construire
loose coupling between server and client
server can change URIs (including pointing to different domains)
advertise new functionalities
less dependency on URI templates or WADL/WSDL)
URIs sont des implementations, le client n’a pas a les connaitre
Les
http://soabits.blogspot.no/2013/12/selling-benefits-of-hypermedia.html
TODO: lien vers version simplifiee = findtheflow.io#relatedprojects
retour d’experience + pub
business value:
enregistre l’exécution
donnée stocké et comment on les valorise
donnée très hiérarchique et explorable grâce aux HATEOAS
questions a repondre:
inconvenient?
surcout
risque de mal faire
migration impossible surtout cote client, le principe change
impact sur perf? (embedded ressources, caching)
quel niveau pour vous ?
vous avez ca en prod ?
questions a leur poser: