SlideShare a Scribd company logo
DESIGN & DEPLOY
A DATA-DRIVEN API IN 2 HOURS

All-in-one platform for Web APIs
http://apispark.com

Restlet undersigned this GigaOM
research report, written by Kin Lane
October 23, 2013
PRESENTER
ENTREPRENEUR AND WEB API EXPERT
Jérôme LOUVEL







CEO of Restlet
12 years of experience in software (EU and US)
Restlet Framework creator (2005)
JAX-RS 1.0 expert (JSR-311)
Contributor to “RESTful Web Services” (O’Reilly)
Co-author of “Restlet in Action” (Manning)

Contact
 jlouvel@restlet.com
 Twitter : @jlouvel and Google+
 Blog : blog.restlet.com
AGENDA
 Part 1 – API design
– Info: The ROA/D to API design
– Lab: Specify your Pizza API

 Pause
 Part 2 – API deployment
– Info: APISpark as an IDE and runtime
– Lab: Deploy your Pizza API
Info : The ROA/D to API design

PART 1 - API DESIGN (15’)
HOW TO DESIGN MY API?
 Let’s pick up a web API framework and prototype!
 I’ll read and digest REST dissertation first

 APIs are lighter Web Services, nothing new
 Let’s look at popular APIs and follow best practices
 My API should have nice URIs and CRUD methods
 Which kind of design process should I follow?

 Many ways to tackle this…
METHODOLOGY
 Resource-Oriented Analysis & Design
– Based on our consulting experience at Restlet
– Variant of OOA/D described in « Restlet in Action » book
– Usable on Agile projects and with Lean approaches

Learn about the ROA/D
methodology !
ITERATION STEPS

Requirements
gathering

Implementation
testing

Design
implementation

Requirements
analysis

Solution
design
PROJECT PHASES
 Each phase contains
– Several iterations
– More requirements & analysis in early phases
– More implementation & testing in later phases

Inception

Elaboration

Construction

Transition
&
UX Design for API Developers
Requirements
gathering

• UX != UI  UXD != API
• Similar process:
– User research  Persona
 Use case  Feature(s)

• Enrich ROA/D during
– Requirements
– Analysis
Requirements
analysis

• Based on Nazmul and Izabel Idris
workshop for Google I/O 13
– http://bit.ly/uxcommunity
– Adapted to web APIs by
APISpark with help of SFEIR
DESCRIBE API PERSONAS
• Bart is a Mobile app
developer
–
–
–
–

Unreliable networks
Pre-fetch and cache data
Small data packets best
Android first, then iPhone

• Homer is a HTML 5
developer
–
–
–
–

Good connectivity
Bigger data for larger screens
Same-Origin Policy
Works with AngularJS

Advises
• Contextual and
specific to your API
• Don’t denature a
persona
• Don’t support too
many personas

• Think about game
consoles, connected
TV / cars, glue scripts
DESCRIBE API FEATURES
• Use cases for Bart
– Build an iPad app version
– Build an Android app version
– Build an iPhone app version

• Features
–
–
–
–

Provide an iOS client SDK
Provide an Android client SDK
Supported GZip HTTP
Monitor API traffic per mobile
device type

Advises
•

Identify use cases per
persona

•

Derive features from
concrete use cases

•

Be careful about
feature creep!
BALANCE API FEATURES
SIMPLICITY VS CAPABILITY
Complexity
Powerful but
unusable

Adding
features

Your web API
sweet spot

Bad UX
design

Good UX
design

Simplistic and
frustrating
Capability
Adding
features
&
Domain-Driven Design for API Developers
Requirements
analysis

• When your domain isn’t trivial
• Key building blocks
– Entity
– Service
– Repository

• Enrich ROA/D during
Solution
design

– Analysis
– Design

• Based on Eric Evans book
IDENTIFY DOMAIN ENTITIES
Advises
Customer

• Defined by thread
of continuity
Invoice
Order

• Has own identity

?

• Not defined by its
properties (
value objects)
DESCRIBE DOMAIN ENTITIES
Advises

Customer
id : String
name : String
created : Date
modified : Date

• Describe
properties

1

*
Invoice
id : String
amount : Integer
iterms : List<InvoiceItem>
modified : Date

*
Order
id : String
amount : Integer
iterms : List<OrderItem>
modified : Date

• Describe
relationships
• Use class
diagrams
Next design steps are more API specific
Requirements
analysis

• Define your logical architecture
– Learn about Netflix API strategy

• Derive your domain entities into
– API resources
– Domain objects
– Data tables
Solution
design

• Design your API resources
– URI templates
– Representations structure
– Supported HTTP methods
LOGICAL ARCHITECTURE

UI

API resources

Domain objects

Data tables

_

+
Reusable
DERIVING THE DOMAIN MODEL

Domain
entities

ROA/D

API
resources

ROM

OOA/D

Domain
objects

IDEF1

ORM

Data
tables
IDENTIFY YOUR APIS
Advises
Browser
Connected
mobile devices

Smart
environnement

• Driven by personas

Pages + API

• Each persona might
need a specific API

Domain
Model
Partner

Internal IS

• All APIs should
share the same
domain model
DESCRIBE API RESOURCES
Advises

Root
http://localhost:8111/
GET() : xml | json | html

• Driven by use
cases

1
Accounts
1

accounts/

• Derived from
Domain Entities

GET() : xml | json | html
POST(xml | json | form) : redirect
1

Account

*

{accountId}/
GET() : xml | json | html
PUT(xml | json | form) : xml | json | html
DELETE() : redirect

• Several APIs for
on domain model
Lab : Specify your Pizza API

PART 1 - API DESIGN (50’)
&

Requirements
gathering

Requirements
analysis
DESCRIBE PIZZA API PERSONAS
Instructions
• Contextual and
specific to your API
• Don’t denature a
persona
• Describe a total of 2
personas
• Time limit: 10’
DESCRIBE PIZZA API USE CASES
Instructions
•

Put your persona in
context with use cases
and derive features

•

Describe a total of 4
use cases (2 per
persona)

•

Identify key features

•

Time limit: 10’
&

Requirements
analysis

Solution
design
DESCRIBE DOMAIN ENTITIES
Advises
• List 4 entities
• Describe their
properties
• Including
relationships
• Time limit: 10’
IDENTIFY YOUR APIS
Advises
• Driven by personas
and features

• Describe 2 endpoints
(1 for each API)
• Several APIs should
share the same
domain model
• Time limit: 5’
DESCRIBE API RESOURCES
Advises
• Driven by use cases

• Derived from
Domain Entities
• Single and
collection resources
• Time limit: 15’
Solution
design

Next steps are about API deployment
• Implement the Domain Entities
– As a persistent store

• Implement the Resource Model
– As a Web API connected to the
Domain Entities
Design
implementation

• Choose between DIY and PaaS
approaches
TIME FOR A BREAK ! (10’)
Info : APISpark as an IDE and runtime

PART 2 - API DEPLOYMENT (5’)
WEB API PROJECT
TYPICAL LIFE CYCLE

1) Do It Yourself (DIY)
long, risky, expensive but highly flexible

Create

Host

Manage

Use

2) Platform as a Service (PaaS)
integrated, fast, cost effective

Promote
APISPARK PLATFORM
CURRENTLY IN RESTRICTED PUBLIC BETA

Send us your feed-back
and help us making it the
best PaaS for Web APIs !
COMPOSING APISPARK CELLS

Java

iOS

HTTP

JS

HTTP

Custom API

Entity Store

File Store
STRUCTURE OF WEB APIS

HTTP

HTTPS

API Contract
Web API
template
Complete
web API

Implementation

Runtime
Lab : Deploy your Pizza API

PART 2 - API DEPLOYMENT (35’)
SOCIAL LOGIN
YOUR DASHBOARD
ENTITY STORE CREATION
ENTITY PROPERTIES
WEB API CREATION
API GENERATION FROM ENTITY STORE
API DEPLOYMENT
CLIENT SDK GENERATION
Next steps are about closing the API loop
Design
implementation

• Verify that the API works as
expected
– Manual tests
– Automated tests
• Functional tests
• Performance tests (availability,
latency, throughput, etc.)

Implementation
testing

• Even more important in case of
composite APIs
API TESTING WITH HTTP CLIENT
BUILT-IN ANALYTICS
CONCLUSION
 Designing a web API requires thinking
– The UX of developers using your API matters
– Use a minimal but effective process

 You can save a lot of time at deployment
– Consider PaaS solutions versus DIY approaches
– Easier and cheaper to get started and maintain
– Think about multiple APIs and versions in 2 years
KEEP IN TOUCH!

http://apispark.com
http://blog.restlet.com
Twitter: @apispark
jlouvel@restlet.com

Restlet undersigned this GigaOM
research report, written by Kin Lane

More Related Content

What's hot (20)

PDF
Jefferson Andrade - Esri Dev Summit 2016 #01
Jefferson Andrade
 
PPTX
All Things API Presentation - Gordon Weakleim [HomeAway]
Cloud Elements
 
PDF
Jefferson Andrade - Esri Dev Summit 2016 #02 - Dev Tools
Jefferson Andrade
 
PDF
Hyperloop
Conny Svensson
 
PDF
Introduction to the Art of API Practice
Bill Doerrfeld
 
PPT
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays
 
PPTX
Cloud Native Application Development - build fast, cheap, scalable and agile ...
Lucas Jellema
 
PPTX
Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Lucas Jellema
 
PPTX
Code with Honor – on the importance and beauty of software programming (Oracl...
Lucas Jellema
 
PPTX
The API Facade Pattern: Technology - Episode 3
Apigee | Google Cloud
 
PPTX
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays
 
PDF
apidays LIVE Paris - The Augmented API Design Reviewer by Arnaud Lauret
apidays
 
PDF
Always Mind Your [Developer] Surroundings - API City 2018
Bill Doerrfeld
 
PPTX
The API Facade Pattern: People - Episode 4
Apigee | Google Cloud
 
PPTX
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
apidays
 
PDF
Cross platform mobile web apps
James Pearce
 
PPTX
Netflix API - Separation of Concerns
Daniel Jacobson
 
PDF
A look ahead at RAP (ESE 2010)
Ralf Sternberg
 
PPTX
Maintainable API Docs and Other Rainbow Colored Unicorns
Neil Mansilla
 
PPTX
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
apidays
 
Jefferson Andrade - Esri Dev Summit 2016 #01
Jefferson Andrade
 
All Things API Presentation - Gordon Weakleim [HomeAway]
Cloud Elements
 
Jefferson Andrade - Esri Dev Summit 2016 #02 - Dev Tools
Jefferson Andrade
 
Hyperloop
Conny Svensson
 
Introduction to the Art of API Practice
Bill Doerrfeld
 
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays
 
Cloud Native Application Development - build fast, cheap, scalable and agile ...
Lucas Jellema
 
Make your Cloud Applications Function for real – A Complete Overview of Oracl...
Lucas Jellema
 
Code with Honor – on the importance and beauty of software programming (Oracl...
Lucas Jellema
 
The API Facade Pattern: Technology - Episode 3
Apigee | Google Cloud
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays
 
apidays LIVE Paris - The Augmented API Design Reviewer by Arnaud Lauret
apidays
 
Always Mind Your [Developer] Surroundings - API City 2018
Bill Doerrfeld
 
The API Facade Pattern: People - Episode 4
Apigee | Google Cloud
 
apidays LIVE Australia 2020 - Leveraging DevOps to visualize your digital eco...
apidays
 
Cross platform mobile web apps
James Pearce
 
Netflix API - Separation of Concerns
Daniel Jacobson
 
A look ahead at RAP (ESE 2010)
Ralf Sternberg
 
Maintainable API Docs and Other Rainbow Colored Unicorns
Neil Mansilla
 
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
apidays
 

Similar to Design & Deploy a data-driven Web API in 2 hours (20)

PDF
A high profile project with Symfony and API Platform: beIN SPORTS
Smile I.T is open
 
PPTX
aip_developer_overview_icar_2014
Matthew Vaughn
 
PPTX
RESTful web APIs (build, document, manage)
Cisco DevNet
 
PDF
(ATS6-DEV02) Web Application Strategies
BIOVIA
 
PDF
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
Alfresco Software
 
PDF
APIdays Paris - How to Build Your Web API
Restlet
 
PDF
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
PPTX
Getting started with SharePoint 2013 online development
Jeremy Thake
 
PPTX
OracleDeveloperMeetup - London 19-12-17
Phil Wilkins
 
PPTX
APIdays 2016 - The State of Web API Languages
Restlet
 
PPTX
AWS API Framework Overview
API Talent
 
PPTX
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Getting value from IoT, Integration and Data Analytics
 
PPTX
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
Blockchainizator
 
PDF
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
WSO2
 
KEY
SumitK's mobile app dev using drupal as base ststem
Sumit Kataria
 
PPTX
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Nikolai Blackie
 
PDF
Seattle StrongLoop Node.js Workshop
Jimmy Guerrero
 
PPTX
Custom Development in SharePoint – What are my options now?
Talbott Crowell
 
PDF
2.28.17 Introducing DSpace 7 Webinar Slides
DuraSpace
 
PDF
Esri Web Applications February11 2011
delmelle
 
A high profile project with Symfony and API Platform: beIN SPORTS
Smile I.T is open
 
aip_developer_overview_icar_2014
Matthew Vaughn
 
RESTful web APIs (build, document, manage)
Cisco DevNet
 
(ATS6-DEV02) Web Application Strategies
BIOVIA
 
Alfresco Day Vienna 2015 - Technical Track - REST API of the Future
Alfresco Software
 
APIdays Paris - How to Build Your Web API
Restlet
 
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
Getting started with SharePoint 2013 online development
Jeremy Thake
 
OracleDeveloperMeetup - London 19-12-17
Phil Wilkins
 
APIdays 2016 - The State of Web API Languages
Restlet
 
AWS API Framework Overview
API Talent
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Getting value from IoT, Integration and Data Analytics
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
Blockchainizator
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
WSO2
 
SumitK's mobile app dev using drupal as base ststem
Sumit Kataria
 
Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101
Nikolai Blackie
 
Seattle StrongLoop Node.js Workshop
Jimmy Guerrero
 
Custom Development in SharePoint – What are my options now?
Talbott Crowell
 
2.28.17 Introducing DSpace 7 Webinar Slides
DuraSpace
 
Esri Web Applications February11 2011
delmelle
 
Ad

More from Restlet (20)

PDF
APIDays - API Design Workshop
Restlet
 
PDF
APIStrat Open API Workshop
Restlet
 
PDF
DevOps DDay - Streamline DevOps Workflows With APIs
Restlet
 
PDF
Restlet Framework NG
Restlet
 
PDF
API World 2016 - A five-sided prism polarizing Web API development
Restlet
 
PDF
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
Restlet
 
PDF
The never-ending REST API design debate -- Devoxx France 2016
Restlet
 
PDF
Public and private APIs: differences and challenges
Restlet
 
PDF
APIdays 2015 - The State of Web API Languages
Restlet
 
PDF
The never-ending REST API design debate
Restlet
 
PDF
Take a Groovy REST
Restlet
 
PDF
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Restlet
 
PDF
GlueCon 2015 - Publish your SQL data as web APIs
Restlet
 
PDF
Transformez vos Google Spreadsheets en API web - DevFest 2014
Restlet
 
PPTX
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
Restlet
 
PPTX
APIdays Paris 2014 - The State of Web API Languages
Restlet
 
PDF
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
Restlet
 
PDF
QCon SF 2014 - Create and Deploy APIs using Web IDEs, Open Source Frameworks ...
Restlet
 
PDF
Web APIs, the New Language Frontier
Restlet
 
PDF
Investir sur son API web (in French)
Restlet
 
APIDays - API Design Workshop
Restlet
 
APIStrat Open API Workshop
Restlet
 
DevOps DDay - Streamline DevOps Workflows With APIs
Restlet
 
Restlet Framework NG
Restlet
 
API World 2016 - A five-sided prism polarizing Web API development
Restlet
 
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
Restlet
 
The never-ending REST API design debate -- Devoxx France 2016
Restlet
 
Public and private APIs: differences and challenges
Restlet
 
APIdays 2015 - The State of Web API Languages
Restlet
 
The never-ending REST API design debate
Restlet
 
Take a Groovy REST
Restlet
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Restlet
 
GlueCon 2015 - Publish your SQL data as web APIs
Restlet
 
Transformez vos Google Spreadsheets en API web - DevFest 2014
Restlet
 
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
Restlet
 
APIdays Paris 2014 - The State of Web API Languages
Restlet
 
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
Restlet
 
QCon SF 2014 - Create and Deploy APIs using Web IDEs, Open Source Frameworks ...
Restlet
 
Web APIs, the New Language Frontier
Restlet
 
Investir sur son API web (in French)
Restlet
 
Ad

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 

Design & Deploy a data-driven Web API in 2 hours

  • 1. DESIGN & DEPLOY A DATA-DRIVEN API IN 2 HOURS All-in-one platform for Web APIs http://apispark.com Restlet undersigned this GigaOM research report, written by Kin Lane October 23, 2013
  • 2. PRESENTER ENTREPRENEUR AND WEB API EXPERT Jérôme LOUVEL       CEO of Restlet 12 years of experience in software (EU and US) Restlet Framework creator (2005) JAX-RS 1.0 expert (JSR-311) Contributor to “RESTful Web Services” (O’Reilly) Co-author of “Restlet in Action” (Manning) Contact  [email protected]  Twitter : @jlouvel and Google+  Blog : blog.restlet.com
  • 3. AGENDA  Part 1 – API design – Info: The ROA/D to API design – Lab: Specify your Pizza API  Pause  Part 2 – API deployment – Info: APISpark as an IDE and runtime – Lab: Deploy your Pizza API
  • 4. Info : The ROA/D to API design PART 1 - API DESIGN (15’)
  • 5. HOW TO DESIGN MY API?  Let’s pick up a web API framework and prototype!  I’ll read and digest REST dissertation first  APIs are lighter Web Services, nothing new  Let’s look at popular APIs and follow best practices  My API should have nice URIs and CRUD methods  Which kind of design process should I follow?  Many ways to tackle this…
  • 6. METHODOLOGY  Resource-Oriented Analysis & Design – Based on our consulting experience at Restlet – Variant of OOA/D described in « Restlet in Action » book – Usable on Agile projects and with Lean approaches Learn about the ROA/D methodology !
  • 8. PROJECT PHASES  Each phase contains – Several iterations – More requirements & analysis in early phases – More implementation & testing in later phases Inception Elaboration Construction Transition
  • 9. & UX Design for API Developers Requirements gathering • UX != UI  UXD != API • Similar process: – User research  Persona  Use case  Feature(s) • Enrich ROA/D during – Requirements – Analysis Requirements analysis • Based on Nazmul and Izabel Idris workshop for Google I/O 13 – http://bit.ly/uxcommunity – Adapted to web APIs by APISpark with help of SFEIR
  • 10. DESCRIBE API PERSONAS • Bart is a Mobile app developer – – – – Unreliable networks Pre-fetch and cache data Small data packets best Android first, then iPhone • Homer is a HTML 5 developer – – – – Good connectivity Bigger data for larger screens Same-Origin Policy Works with AngularJS Advises • Contextual and specific to your API • Don’t denature a persona • Don’t support too many personas • Think about game consoles, connected TV / cars, glue scripts
  • 11. DESCRIBE API FEATURES • Use cases for Bart – Build an iPad app version – Build an Android app version – Build an iPhone app version • Features – – – – Provide an iOS client SDK Provide an Android client SDK Supported GZip HTTP Monitor API traffic per mobile device type Advises • Identify use cases per persona • Derive features from concrete use cases • Be careful about feature creep!
  • 12. BALANCE API FEATURES SIMPLICITY VS CAPABILITY Complexity Powerful but unusable Adding features Your web API sweet spot Bad UX design Good UX design Simplistic and frustrating Capability Adding features
  • 13. & Domain-Driven Design for API Developers Requirements analysis • When your domain isn’t trivial • Key building blocks – Entity – Service – Repository • Enrich ROA/D during Solution design – Analysis – Design • Based on Eric Evans book
  • 14. IDENTIFY DOMAIN ENTITIES Advises Customer • Defined by thread of continuity Invoice Order • Has own identity ? • Not defined by its properties ( value objects)
  • 15. DESCRIBE DOMAIN ENTITIES Advises Customer id : String name : String created : Date modified : Date • Describe properties 1 * Invoice id : String amount : Integer iterms : List<InvoiceItem> modified : Date * Order id : String amount : Integer iterms : List<OrderItem> modified : Date • Describe relationships • Use class diagrams
  • 16. Next design steps are more API specific Requirements analysis • Define your logical architecture – Learn about Netflix API strategy • Derive your domain entities into – API resources – Domain objects – Data tables Solution design • Design your API resources – URI templates – Representations structure – Supported HTTP methods
  • 17. LOGICAL ARCHITECTURE UI API resources Domain objects Data tables _ + Reusable
  • 18. DERIVING THE DOMAIN MODEL Domain entities ROA/D API resources ROM OOA/D Domain objects IDEF1 ORM Data tables
  • 19. IDENTIFY YOUR APIS Advises Browser Connected mobile devices Smart environnement • Driven by personas Pages + API • Each persona might need a specific API Domain Model Partner Internal IS • All APIs should share the same domain model
  • 20. DESCRIBE API RESOURCES Advises Root http://localhost:8111/ GET() : xml | json | html • Driven by use cases 1 Accounts 1 accounts/ • Derived from Domain Entities GET() : xml | json | html POST(xml | json | form) : redirect 1 Account * {accountId}/ GET() : xml | json | html PUT(xml | json | form) : xml | json | html DELETE() : redirect • Several APIs for on domain model
  • 21. Lab : Specify your Pizza API PART 1 - API DESIGN (50’)
  • 23. DESCRIBE PIZZA API PERSONAS Instructions • Contextual and specific to your API • Don’t denature a persona • Describe a total of 2 personas • Time limit: 10’
  • 24. DESCRIBE PIZZA API USE CASES Instructions • Put your persona in context with use cases and derive features • Describe a total of 4 use cases (2 per persona) • Identify key features • Time limit: 10’
  • 26. DESCRIBE DOMAIN ENTITIES Advises • List 4 entities • Describe their properties • Including relationships • Time limit: 10’
  • 27. IDENTIFY YOUR APIS Advises • Driven by personas and features • Describe 2 endpoints (1 for each API) • Several APIs should share the same domain model • Time limit: 5’
  • 28. DESCRIBE API RESOURCES Advises • Driven by use cases • Derived from Domain Entities • Single and collection resources • Time limit: 15’
  • 29. Solution design Next steps are about API deployment • Implement the Domain Entities – As a persistent store • Implement the Resource Model – As a Web API connected to the Domain Entities Design implementation • Choose between DIY and PaaS approaches
  • 30. TIME FOR A BREAK ! (10’)
  • 31. Info : APISpark as an IDE and runtime PART 2 - API DEPLOYMENT (5’)
  • 32. WEB API PROJECT TYPICAL LIFE CYCLE 1) Do It Yourself (DIY) long, risky, expensive but highly flexible Create Host Manage Use 2) Platform as a Service (PaaS) integrated, fast, cost effective Promote
  • 33. APISPARK PLATFORM CURRENTLY IN RESTRICTED PUBLIC BETA Send us your feed-back and help us making it the best PaaS for Web APIs !
  • 35. STRUCTURE OF WEB APIS HTTP HTTPS API Contract Web API template Complete web API Implementation Runtime
  • 36. Lab : Deploy your Pizza API PART 2 - API DEPLOYMENT (35’)
  • 42. API GENERATION FROM ENTITY STORE
  • 45. Next steps are about closing the API loop Design implementation • Verify that the API works as expected – Manual tests – Automated tests • Functional tests • Performance tests (availability, latency, throughput, etc.) Implementation testing • Even more important in case of composite APIs
  • 46. API TESTING WITH HTTP CLIENT
  • 48. CONCLUSION  Designing a web API requires thinking – The UX of developers using your API matters – Use a minimal but effective process  You can save a lot of time at deployment – Consider PaaS solutions versus DIY approaches – Easier and cheaper to get started and maintain – Think about multiple APIs and versions in 2 years