SlideShare une entreprise Scribd logo
1  sur  50
« BUILD, DOCUMENT, MANAGE » CLASS
RESTful Web APIs
February 2015
@SteveSfartz
APIS ARE THE FUEL OF THE WEB
APIGee 2015 – Web API Strategy
A BIT OF THEORY
REST, web APIs, RESTful web APIs
THE REST STYLE
Based on the web’s architecture
Formalised by Roy T. Fielding in his PhD dissertation
The main properties of REST
- Client-server
- Stateless
- Every request contains the information
required to process it
- REST is cache-friendly
- Interoperable
- Uniform interface
- Loose coupling
Constraints of a REST interface
- identifiable resources
- resources are manipulated via
their representations
- messages are self-contained
- hypermedia as the engine of
application state (HATEOAS)
RICHARSON MATURITY MODEL
martinfowler.com/articles/richardsonMaturityModel.html
Client Service
AppointmentService
GetOpenTimeSlot
MakeAppointment
TimeSlotsList
ReservationResult
LEVEL0
POX, SINGLE URI, TRANSPORT
• The systems focus are service end point URI and one
HTTP verb (likely POST verb) for communication.
Client
Doctors
http://klinik.com/
doctors/eberwein
slots/15092012
TimeSlotsList
ReservationResult
Slots
POST
POST
LEVEL1
RESOURCES
• Introduces resources, URIs, but 1 HTTP verb.
• Handling complexity by using divide and conquer,
breaking a large endpoint down into multiple
resources.
Client
Doctors
http://klinik.com/
doctors/eberwein
?date=…&open=1
slots/15092012
200 OK TimeSlotsList
204 CREATED ReservationResult
Slots
GET
POST
LEVEL2
HTTP VERBS
• The system relies on more HTTP verbs and
HTTP response codes on each resource.
Client
Doctors
http://klinik.com/
doctors/eberwein
?date=…&open=1
slots/15092012
200 OK TimeSlotsList
<link rel = "/linkrels/slot/book"
uri = "/slots/15092012"/>
204 CREATED ReservationResult
Slots
GET
POST
LEVEL3
HYPERMEDIA
• Introduces discoverability, providing a way of making
a protocol more self-documenting.
FROM REST TO WEB APIS
http://blog.restlet.com/2013/05/02/how-much-rest-should-your-web-api-get/
WEB APIS LIFE CYCLE
design
build
host
manage
document
promote
… and version
CLASS HOLS
frameworks
Restlet Framework
Sails.js
management
Runscope
APISpark
web API platform
APISpark
tooling
POSTMAN
Swagger Editor
Restlet Studio
Intellij IDEA
design
build
host
manage
document
promote
BUILD
Do It Yourself with SAIL.JS
FIRST WEB API WITH SAILS.JS BLUEPRINT
• POSTMAN collection : http://goo.gl/2MSQZY
> sails new firstapi-withsailsjs
> sails generate api users
> sails lift
QUESTIONS / ANSWERS
• Terminology : /users for a collection
• Path : support both user and users/
• PUT versus POST : design option
• HTTP statuts : http://restapitutorial.com/
BUILD
with the APISpark PaaS
APISPARK
the first self-service platform for APIs
http://restlet.com/products/apispark/features/
ALL-IN-ONE WEB PLATFORM
Create your Web API quickly
– 5 minutes scenario based on existing API template (e.g. blog API)
– Open source foundation (Restlet Framework) , the full code can be
exported
Integrated hosting
– Scalable and reactive backend (low latency, integrated management)
– Permanent availability 24/24 7/7 and secured (SSL confidentiality,
precise management of authorizations)
Automatic versioning
– Manage several versions of your APIs
– Free to update your APIs with no impact on current users
– Simple and clear lifecycle (draft, published, deprecated, archived,
removed)
Automatic documentation
– Always up-to-date
– Test your API live
– Easy export to multiple formats
Clients SDKs generation
– Ease the use of your API
– Support of most popular platforms (iPhone/iPad, Android,
Java, .NET, PHP, Python)
Community management
– Manage the users and their signins
– Private or public communities
– Send announcements
ALL-IN-ONE WEB PLATFORM
COMPOSING APISPARK CELLS
Entity Store File Store
Custom API
Java iOS JS
HTTP HTTP
HOL 1
• sign in APISpark
• take the tutorial « Turn a Gsheet into a web API”
– http://restlet.com/technical-
resources/apispark/tutorials/
• gsheet sample
– list rows
– add a row
• invoke with
POSTMAN
HOL 2
• sign in on APISpark
• take the tutorial “Create a web API”
– http://restlet.com/technical-
resources/apispark/tutorials/
• invoke with POSTMAN
• to go further : host an angular app
– check sample :
https://github.com/guiblondeau/bookStore
MONITOR
with Runscope
WHY ?
• Remember: web APIs are your company key assets
• Technical monitoring
– ensure they are always up
– give visibility to your consumers
– detect issues (low perfs)
– ease maintenance (compatibility test suites)
• Business monitor
– Analytics, Analytics, Analytics !!!
HOL 3
• Monitoring with RunScope
– import your POSTMAN collection
• Traffic Inspector > Import Requests
– create test
– run
– add assertions
– schedule
DOCUMENT YOUR WEB API
Swagger, RAML, APIBlueprint
HOW ?
• Top down : create manually or via an editor
• Bottom up : code annotations, introspection
• No standardization
– Swagger
– RAML
– API-blueprint
– …
HOL 4
• Document via the Swagger Editor
– turn public your APISpark documentation
• Web API > General Information > Public access (true)
– load your swagger2 endpoint in editor.swagger.io/
– adapt definition
– invoke
COMPARISON
SmartBear 2014
SYNTHESIS
• No clear winner at this stage
– don’t get locked-in
– translate your API definition between various languages
– use the best of each language ecosystem (tooling,
directory)
• Take API copyright seriously (now)
– play nice in the API economy
– choose a license for your Web API
– publish it to the « API Commons »
– verify the legal terms of the APIs you depend on
BOTTOM UP APPROACH
Document via Annotations or Introspection
BOTTOM UP WITH RESTLET INTROSPECTOR
JAX-RS API
Restlet API
Spring REST
Swagger
annotations
Bean Validation
annotations
Google Cloud
Endpoints API
1. Select
a main
Java API
Java
source
code
3. Write your
Java code
JAXB
annotations
2. Add extra
annotation
APIs
Jackson
annotations
RESTful
Web API
4. Get your
web API
DOCUMENT YOUR WEB API
IN JAVA LANGUAGE
RESTful
Web API
Web API
definition
1. Code your
web API
(iterate)
2. Introspect
source code
3. Complete
API definition
manually
Intro-
spector
4. Select
target API
specs
RAML
API
Blueprint
Swagger
Google API
Discovery
WADL
HOL 5
• clone https://github.com/restlet/restlet-sample-
descriptor.git
• introspect
• open Descriptor
on APISpark
• play with
annotations
• introspect again
• turn access to public
• open Swagger2
endpoint in Studio
HOL 6
• Generate source code from an existing APISpark API
– API > generate downloads
– download tab > get source code
• Unzip, maven build
• Add Swagger support
MANAGE YOUR WEB API
HOW IT WORKS
• Reverse proxy in front of your API
– Filter incoming calls
– Authentication, Authorizations
– Firewall
– Analytics
– …
HOL 7
• Leverage the APISpark firewall
– add a RateLimiter to an APISpark Full Stack API
• Settings > Rate Limits (3 calls / minute / user)
– Redeploy your Web API
– Invoke >3 times and check for HTTP status 429
APISPARK CONNECTOR
• APISpark Connector
– User friendly interface to configure your proxy
• Open-source proxy
– Part of the Restlet Framework APISpark extension
• Deployment
– as a standalone agent
– or embedded in a Restlet application
HOL 8
• Add a RateLimiter to a local Web API
– see http://restlet.com/technical-
resources/apispark/guide/manage/connectors
– create a Connector on APISpark
– configure (add a Rate limiter)
– deploy the connector
– install the agent on your local devenv
BUILD / FINE-GRAINED CONTROL
with the Restlet Framework
WEB API FRAMEWORK FOR JAVA
OPEN SOURCE SINCE 2005
6 editions
44 extensions
1,5 M downloads
100 000 developers
Version 2.3.0 launched
in November 2014
Covers our ROA/D
API guidelines
Consistent client & server API
Powerful routing & filtering
Comprehensive web security
Aligned with REST & HTTP
Fast & scalable
HOL 9
• load the web API reference implementation
– https://github.com/restlet/restlet-tutorial
• run org.restlet.tutorial.WebApiTutorial
• invoke via POSTMAN
API DESIGNS
a bit of architecture
WEB API ARCHITECTURE
• basic design
– no distinction between app and backend
– the app is the sum of data and UX
app data
WEB API ARCHITECTURE
• « api-aware » design
– multiple apps, multiple devices, need to evolve
independently
app dataapiapp
WEB API ARCHITECTURE
• « api-centric » design
– your API gets richer to simplify app code
– business logic moves to the API, as well as security, and
versioning stakes
app dataapiapp
WEB API ARCHITECTURE
• « channel oriented » design
– taking into accounts specifis (sync/async, bandwith,
streaming, callbacks, IoT)
– automated generation of client SDKs adapted to
consumption scenarios
app dataapichannelapp channel
RESTFULL WEB APIS RESSOURCES
• ongoing debate regarding the proper way to design
– Hypermedia APIs (see this O’Reilly book)
– REST endpoints (see Roy T. Fielding’s tweet)
– REST APIs (see this O’Reilly book and Roy T. Fielding’s
blog post)
– RESTful Web Services (see this O’Reilly book)
– RESTful Web APIs (see Restlet in Action’ book)
– Pragmatic REST (see Kin Lane /API Evangelist web page)
SEE YOU IN THE WEB API GALAXY
mailto : steve@sfartz.com
twitter : @SteveSfartz
blog : Think big … mais pas trop !
« Vision without execution is
hallucination ». Thomas Edison
« Tout objectif flou se traduit par des
conneries précises » Frédéric Dard

Contenu connexe

Tendances

Docker and IBM Integration Bus
Docker and IBM Integration BusDocker and IBM Integration Bus
Docker and IBM Integration BusGeza Geleji
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryKaren Broughton-Mabbitt
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopManuel Garcia
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
 
Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...
Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...
Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...All Things Open
 
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...VMware Tanzu
 
Developer Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldDeveloper Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldGrace Jansen
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewZia Consulting
 
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Lucas Jellema
 
Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017bthomps1979
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache CamelChristian Posta
 
Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...
Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...
Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...Sravan Lingam
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRRoy Cornelissen
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyAndrew Coleman
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platformsPaul Czarkowski
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET MicroservicesVMware Tanzu
 
Dark launching with Consul at Hootsuite - Bill Monkman
Dark launching with Consul at Hootsuite - Bill MonkmanDark launching with Consul at Hootsuite - Bill Monkman
Dark launching with Consul at Hootsuite - Bill MonkmanAmbassador Labs
 
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
Cloud Foundry Summit 2015: 12 Factor Apps For OperationsCloud Foundry Summit 2015: 12 Factor Apps For Operations
Cloud Foundry Summit 2015: 12 Factor Apps For OperationsVMware Tanzu
 

Tendances (20)

Docker and IBM Integration Bus
Docker and IBM Integration BusDocker and IBM Integration Bus
Docker and IBM Integration Bus
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring BootUnderstanding MicroSERVICE Architecture with Java & Spring Boot
Understanding MicroSERVICE Architecture with Java & Spring Boot
 
Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...
Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...
Open-source RPA: Leveraging Python and Robot Framework ecosystems for busines...
 
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
 
Microservices
MicroservicesMicroservices
Microservices
 
Developer Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldDeveloper Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven world
 
Alfresco 5.0 Technology Review
Alfresco 5.0 Technology ReviewAlfresco 5.0 Technology Review
Alfresco 5.0 Technology Review
 
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...
 
Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...
Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...
Hyderabad MuleSoft Meetup - Anypoint Studio Tips and Tricks & Salesforce Comp...
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalR
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economy
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platforms
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
 
Dark launching with Consul at Hootsuite - Bill Monkman
Dark launching with Consul at Hootsuite - Bill MonkmanDark launching with Consul at Hootsuite - Bill Monkman
Dark launching with Consul at Hootsuite - Bill Monkman
 
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
Cloud Foundry Summit 2015: 12 Factor Apps For OperationsCloud Foundry Summit 2015: 12 Factor Apps For Operations
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
 

En vedette

Enjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIEnjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIKevin Hazzard
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour Cisco DevNet
 
Testing and Documenting Pragmatic / RESTful Web API
Testing and Documenting Pragmatic / RESTful Web APITesting and Documenting Pragmatic / RESTful Web API
Testing and Documenting Pragmatic / RESTful Web APIArul Kumaran
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Cisco DevNet
 

En vedette (6)

Enjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIEnjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web API
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour
 
WCF And ASMX Web Services
WCF And ASMX Web ServicesWCF And ASMX Web Services
WCF And ASMX Web Services
 
Testing and Documenting Pragmatic / RESTful Web API
Testing and Documenting Pragmatic / RESTful Web APITesting and Documenting Pragmatic / RESTful Web API
Testing and Documenting Pragmatic / RESTful Web API
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 

Similaire à RESTful web APIs (build, document, manage)

Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- MadridVinay Kumar
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIWSO2
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
 
APIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIAPIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIRestlet
 
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIsJerome Louvel
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18Vinay Kumar
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18Vinay Kumar
 
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayAWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayVadim Zendejas
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayAmazon Web Services
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursRestlet
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API LanguagesRestlet
 
Aws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API GatewayAws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API Gatewayaws-marketing-il
 
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryAndrew Ripka
 
2016 06 - design your api management strategy - axway - Api Management
2016 06 - design your api management strategy - axway - Api Management2016 06 - design your api management strategy - axway - Api Management
2016 06 - design your api management strategy - axway - Api ManagementSmartWave
 
Resting on your laurels will get you powned
Resting on your laurels will get you pownedResting on your laurels will get you powned
Resting on your laurels will get you pownedDinis Cruz
 

Similaire à RESTful web APIs (build, document, manage) (20)

Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
 
M meijer api management - tech-days 2015
M meijer   api management - tech-days 2015M meijer   api management - tech-days 2015
M meijer api management - tech-days 2015
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
APIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIAPIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web API
 
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIs
 
Extend soa with api management Doag18
Extend soa with api management Doag18Extend soa with api management Doag18
Extend soa with api management Doag18
 
APITalkMeetupSharable
APITalkMeetupSharableAPITalkMeetupSharable
APITalkMeetupSharable
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
 
Open Banking & Open Insurance
Open Banking & Open InsuranceOpen Banking & Open Insurance
Open Banking & Open Insurance
 
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayAWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API Gateway
 
REST APIs
REST APIsREST APIs
REST APIs
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hours
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API Languages
 
Aws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API GatewayAws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API Gateway
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud Foundry
 
2016 06 - design your api management strategy - axway - Api Management
2016 06 - design your api management strategy - axway - Api Management2016 06 - design your api management strategy - axway - Api Management
2016 06 - design your api management strategy - axway - Api Management
 
Resting on your laurels will get you powned
Resting on your laurels will get you pownedResting on your laurels will get you powned
Resting on your laurels will get you powned
 

Plus de Cisco DevNet

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023Cisco DevNet
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfCisco DevNet
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPICisco DevNet
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Cisco DevNet
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Cisco DevNet
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Cisco DevNet
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Cisco DevNet
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Cisco DevNet
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Cisco DevNet
 
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...Cisco DevNet
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningCisco DevNet
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetCisco DevNet
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Cisco DevNet
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Cisco DevNet
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Cisco DevNet
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Cisco DevNet
 
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Cisco DevNet
 

Plus de Cisco DevNet (20)

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdf
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPI
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
 
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
 
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
 

Dernier

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

RESTful web APIs (build, document, manage)

  • 1. « BUILD, DOCUMENT, MANAGE » CLASS RESTful Web APIs February 2015 @SteveSfartz
  • 2. APIS ARE THE FUEL OF THE WEB APIGee 2015 – Web API Strategy
  • 3. A BIT OF THEORY REST, web APIs, RESTful web APIs
  • 4. THE REST STYLE Based on the web’s architecture Formalised by Roy T. Fielding in his PhD dissertation The main properties of REST - Client-server - Stateless - Every request contains the information required to process it - REST is cache-friendly - Interoperable - Uniform interface - Loose coupling Constraints of a REST interface - identifiable resources - resources are manipulated via their representations - messages are self-contained - hypermedia as the engine of application state (HATEOAS)
  • 6. Client Service AppointmentService GetOpenTimeSlot MakeAppointment TimeSlotsList ReservationResult LEVEL0 POX, SINGLE URI, TRANSPORT • The systems focus are service end point URI and one HTTP verb (likely POST verb) for communication.
  • 7. Client Doctors http://klinik.com/ doctors/eberwein slots/15092012 TimeSlotsList ReservationResult Slots POST POST LEVEL1 RESOURCES • Introduces resources, URIs, but 1 HTTP verb. • Handling complexity by using divide and conquer, breaking a large endpoint down into multiple resources.
  • 8. Client Doctors http://klinik.com/ doctors/eberwein ?date=…&open=1 slots/15092012 200 OK TimeSlotsList 204 CREATED ReservationResult Slots GET POST LEVEL2 HTTP VERBS • The system relies on more HTTP verbs and HTTP response codes on each resource.
  • 9. Client Doctors http://klinik.com/ doctors/eberwein ?date=…&open=1 slots/15092012 200 OK TimeSlotsList <link rel = "/linkrels/slot/book" uri = "/slots/15092012"/> 204 CREATED ReservationResult Slots GET POST LEVEL3 HYPERMEDIA • Introduces discoverability, providing a way of making a protocol more self-documenting.
  • 10. FROM REST TO WEB APIS http://blog.restlet.com/2013/05/02/how-much-rest-should-your-web-api-get/
  • 11. WEB APIS LIFE CYCLE design build host manage document promote … and version
  • 12. CLASS HOLS frameworks Restlet Framework Sails.js management Runscope APISpark web API platform APISpark tooling POSTMAN Swagger Editor Restlet Studio Intellij IDEA design build host manage document promote
  • 13. BUILD Do It Yourself with SAIL.JS
  • 14. FIRST WEB API WITH SAILS.JS BLUEPRINT • POSTMAN collection : http://goo.gl/2MSQZY > sails new firstapi-withsailsjs > sails generate api users > sails lift
  • 15. QUESTIONS / ANSWERS • Terminology : /users for a collection • Path : support both user and users/ • PUT versus POST : design option • HTTP statuts : http://restapitutorial.com/
  • 17. APISPARK the first self-service platform for APIs http://restlet.com/products/apispark/features/
  • 18. ALL-IN-ONE WEB PLATFORM Create your Web API quickly – 5 minutes scenario based on existing API template (e.g. blog API) – Open source foundation (Restlet Framework) , the full code can be exported Integrated hosting – Scalable and reactive backend (low latency, integrated management) – Permanent availability 24/24 7/7 and secured (SSL confidentiality, precise management of authorizations) Automatic versioning – Manage several versions of your APIs – Free to update your APIs with no impact on current users – Simple and clear lifecycle (draft, published, deprecated, archived, removed)
  • 19. Automatic documentation – Always up-to-date – Test your API live – Easy export to multiple formats Clients SDKs generation – Ease the use of your API – Support of most popular platforms (iPhone/iPad, Android, Java, .NET, PHP, Python) Community management – Manage the users and their signins – Private or public communities – Send announcements ALL-IN-ONE WEB PLATFORM
  • 20. COMPOSING APISPARK CELLS Entity Store File Store Custom API Java iOS JS HTTP HTTP
  • 21. HOL 1 • sign in APISpark • take the tutorial « Turn a Gsheet into a web API” – http://restlet.com/technical- resources/apispark/tutorials/ • gsheet sample – list rows – add a row • invoke with POSTMAN
  • 22. HOL 2 • sign in on APISpark • take the tutorial “Create a web API” – http://restlet.com/technical- resources/apispark/tutorials/ • invoke with POSTMAN • to go further : host an angular app – check sample : https://github.com/guiblondeau/bookStore
  • 24. WHY ? • Remember: web APIs are your company key assets • Technical monitoring – ensure they are always up – give visibility to your consumers – detect issues (low perfs) – ease maintenance (compatibility test suites) • Business monitor – Analytics, Analytics, Analytics !!!
  • 25. HOL 3 • Monitoring with RunScope – import your POSTMAN collection • Traffic Inspector > Import Requests – create test – run – add assertions – schedule
  • 26. DOCUMENT YOUR WEB API Swagger, RAML, APIBlueprint
  • 27. HOW ? • Top down : create manually or via an editor • Bottom up : code annotations, introspection • No standardization – Swagger – RAML – API-blueprint – …
  • 28. HOL 4 • Document via the Swagger Editor – turn public your APISpark documentation • Web API > General Information > Public access (true) – load your swagger2 endpoint in editor.swagger.io/ – adapt definition – invoke
  • 30. SYNTHESIS • No clear winner at this stage – don’t get locked-in – translate your API definition between various languages – use the best of each language ecosystem (tooling, directory) • Take API copyright seriously (now) – play nice in the API economy – choose a license for your Web API – publish it to the « API Commons » – verify the legal terms of the APIs you depend on
  • 31. BOTTOM UP APPROACH Document via Annotations or Introspection
  • 32. BOTTOM UP WITH RESTLET INTROSPECTOR JAX-RS API Restlet API Spring REST Swagger annotations Bean Validation annotations Google Cloud Endpoints API 1. Select a main Java API Java source code 3. Write your Java code JAXB annotations 2. Add extra annotation APIs Jackson annotations RESTful Web API 4. Get your web API
  • 33. DOCUMENT YOUR WEB API IN JAVA LANGUAGE RESTful Web API Web API definition 1. Code your web API (iterate) 2. Introspect source code 3. Complete API definition manually Intro- spector 4. Select target API specs RAML API Blueprint Swagger Google API Discovery WADL
  • 34. HOL 5 • clone https://github.com/restlet/restlet-sample- descriptor.git • introspect • open Descriptor on APISpark • play with annotations • introspect again • turn access to public • open Swagger2 endpoint in Studio
  • 35. HOL 6 • Generate source code from an existing APISpark API – API > generate downloads – download tab > get source code • Unzip, maven build • Add Swagger support
  • 37. HOW IT WORKS • Reverse proxy in front of your API – Filter incoming calls – Authentication, Authorizations – Firewall – Analytics – …
  • 38. HOL 7 • Leverage the APISpark firewall – add a RateLimiter to an APISpark Full Stack API • Settings > Rate Limits (3 calls / minute / user) – Redeploy your Web API – Invoke >3 times and check for HTTP status 429
  • 39. APISPARK CONNECTOR • APISpark Connector – User friendly interface to configure your proxy • Open-source proxy – Part of the Restlet Framework APISpark extension • Deployment – as a standalone agent – or embedded in a Restlet application
  • 40. HOL 8 • Add a RateLimiter to a local Web API – see http://restlet.com/technical- resources/apispark/guide/manage/connectors – create a Connector on APISpark – configure (add a Rate limiter) – deploy the connector – install the agent on your local devenv
  • 41. BUILD / FINE-GRAINED CONTROL with the Restlet Framework
  • 42. WEB API FRAMEWORK FOR JAVA OPEN SOURCE SINCE 2005 6 editions 44 extensions 1,5 M downloads 100 000 developers Version 2.3.0 launched in November 2014 Covers our ROA/D API guidelines Consistent client & server API Powerful routing & filtering Comprehensive web security Aligned with REST & HTTP Fast & scalable
  • 43. HOL 9 • load the web API reference implementation – https://github.com/restlet/restlet-tutorial • run org.restlet.tutorial.WebApiTutorial • invoke via POSTMAN
  • 44. API DESIGNS a bit of architecture
  • 45. WEB API ARCHITECTURE • basic design – no distinction between app and backend – the app is the sum of data and UX app data
  • 46. WEB API ARCHITECTURE • « api-aware » design – multiple apps, multiple devices, need to evolve independently app dataapiapp
  • 47. WEB API ARCHITECTURE • « api-centric » design – your API gets richer to simplify app code – business logic moves to the API, as well as security, and versioning stakes app dataapiapp
  • 48. WEB API ARCHITECTURE • « channel oriented » design – taking into accounts specifis (sync/async, bandwith, streaming, callbacks, IoT) – automated generation of client SDKs adapted to consumption scenarios app dataapichannelapp channel
  • 49. RESTFULL WEB APIS RESSOURCES • ongoing debate regarding the proper way to design – Hypermedia APIs (see this O’Reilly book) – REST endpoints (see Roy T. Fielding’s tweet) – REST APIs (see this O’Reilly book and Roy T. Fielding’s blog post) – RESTful Web Services (see this O’Reilly book) – RESTful Web APIs (see Restlet in Action’ book) – Pragmatic REST (see Kin Lane /API Evangelist web page)
  • 50. SEE YOU IN THE WEB API GALAXY mailto : steve@sfartz.com twitter : @SteveSfartz blog : Think big … mais pas trop ! « Vision without execution is hallucination ». Thomas Edison « Tout objectif flou se traduit par des conneries précises » Frédéric Dard

Notes de l'éditeur

  1. http://blog.xebia.fr/2010/06/25/rest-richardson-maturity-model/
  2. <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet.ext.swagger</artifactId> <version>${restlet-version}</version> </dependency> apiRouter.attach("/swagger2", new Swagger2SpecificationRestlet(this));