SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Battlefield REST
API's from the trenches
Daniel Cerecedo
@dcerecedo
Agenda
StrategicDrivers
TacticalChoices
Language
Frameworkdilemma
Tools
Downtothetrenches
URIs
Representations
Hypermedia
Views
Updates&Concurrency
NextSteps
@dcerecedoByteflair
Strategic Drivers
@dcerecedoByteflair
Strategic Drivers
Agility&Flexibility
Heraclitus
@dcerecedoByteflair
“Thereisnothing
permanentbutchange”
Strategic Drivers
Growth
@dcerecedoByteflair
Strategic Drivers
RESTful Web Services
@dcerecedoByteflair
Strategic Drivers
Servicedependability
Timetomarket
Quality
@dcerecedoByteflair
Strategic Drivers
Puttingitalltogether
@dcerecedoByteflair
Quality
Dependability
Speed
Cost
Strategic Drivers
Jackofalltrades,
Masterofnone
Achievingdependability
@dcerecedoByteflair
Strategic Drivers
Climbfaster,deliverfaster
@dcerecedoByteflair
Automate
Strategic Drivers
Puttingitalltogether
@dcerecedoByteflair
DevelopmentCosts
#ProjectsExecuted
Every time output is doubled
cost per unit falls by 15%
“1.000 days to
develop,
10.000 days to
polish”
@dcerecedoByteflair
Miyamoto Mushashi
Tactical Choices
@dcerecedoByteflair
@dcerecedoByteflair
“Weapons should be adapted to
your personal qualities and be
one you can handle”
Tactical Choices
Miyamoto Mushashi
Tactical Choices
Java&Spring
@dcerecedoByteflair
Community,Availability&QualityofLibraries
Scalability&Deployability
ObjectOriented&TypeSafe
Wearealreadygoodatit
Tactical Choices
@dcerecedoByteflair
Here,wedoitthe
PHPway
Tactical Choices
@dcerecedoByteflair
SpeedFlexibility
Theframeworkdilemma
Tactical Choices
@dcerecedoByteflair
Tools
Swagger
Postman
“It is
deplorable to
die with
weapons left in
their
scabbards”
@dcerecedoByteflair
Miyamoto Mushashi
Down to the trenches
@dcerecedoByteflair
URIs
@dcerecedoByteflair
URIs
Whatistheresource?
/collection/{id}
Default
@dcerecedoByteflair
URIs
Whatistheresource?
/collection;id={id}
/collection;slug={slug}
/collection/{id};field={fieldName}
MultipleId's
@dcerecedoByteflair
URIs
BhasuniqueidswithinA
Bhasuniversaluniqueids
A B
1 N
Nesting
@dcerecedoByteflair
URIs
Whatistheresourceandcontext?
/collection_a/{aid}/collection_b/{bid}
A B
1 N
Nesting–UniqueId'swithinA
@dcerecedoByteflair
URIs
Whatistheresourceandcontext?
/collection_a/{aid}/collection_b/
/collection_a/{aid}/collection_b/{bid}
/collection_b/{bid}
A B
1 N
Nesting–UniversalUniqueId's
@dcerecedoByteflair
URIs
Whyprovidecontextto
universalid's?
FasterqueriesinNoSQL
(nested docs)
{ }
@dcerecedoByteflair
URIs
A B
N N
Nesting–UniversalUniqueId's
A C
1 N
B
1 N
@dcerecedoByteflair
...andapplythesamerecipe
...normalize...
URIs
Nesting–AnoteonUsers
@dcerecedoByteflair
/users/{uid}/collection_b/{bid}
Fortheconnecteduser:
/collection_b/{bid}
URIs
Calculations
@dcerecedoByteflair
Createaficticiousresource
Representation
@dcerecedoByteflair
Representation
HTTPStatusCode
HTTPHeaders
HTTPResponseBody
OverloadingHTTP
@dcerecedoByteflair
Representation
HTTPStatusCode
Success Error
IdentifyingResponseOutcome
@dcerecedoByteflair
Representation
HTTPStatusprovidescontext
ResponseBodyprovidesdetail
{
“code”: 123,
“message”:“sourceoftheproblem”,
“hint”:“givemewaystoovercomethisobstacle”
}
Error
@dcerecedoByteflair
Representation
{
“error”:null,
“data”:{…}
}
Error
{
“error”:{…},
“data”:null
}
NO
@dcerecedoByteflair
Representation
{
“field_a”:“value”,
“field_b”:value,
...}
Success
@dcerecedoByteflair
[
{…},
{…},
...]
Representation
{
“size”:7,
“data”:[
{…},
{…},
...
]
}
Error
NO
@dcerecedoByteflair
Representation
Ifthereisnoneedtowrapresponses
Don'tdoit
@dcerecedoByteflair
Representation
HTTPHeaders
Elementsinthearray
Anymetadataaboutthecurrentresponse
@dcerecedoByteflair
Metadata
Representation
@dcerecedoByteflair
ExpansionandProjections
Don't be opinionated about the
client
Representation
@dcerecedoByteflair
Views
Representation
@dcerecedoByteflair
Updates&Concurrency
Hypermedia
@dcerecedoByteflair
Hypermedia
@dcerecedoByteflair
SHOW ME
THE MONEY
Hypermedia
@dcerecedoByteflair
URI'sareId's
“id”: “5ef321”
“id”:{
“_link”:“http://api.domain.com/collection/5ef321”
}
“id”: “http://api.domain.com/collection/5ef321”
Hypermedia
@dcerecedoByteflair
Referencing
“author”:{
“_link”:“http://api.domain.com/users/5ef321”
}
“messages”:[{
“_link”:“http://api.domain.com/picks/3976dh
},
{
“_link”:“http://api.domain.com/picks/3976dh
},...]
Hypermedia
HTTPHeaders
Paginationlinks
Linktothecreatedresource
@dcerecedoByteflair
Metadata
Moving On
@dcerecedoByteflair
@dcerecedoByteflair
“Be victorious
today
over what you
were
yesterday”
Miyamoto Mushashi
?
Daniel Cerecedo
@dcerecedo

Weitere ähnliche Inhalte

Andere mochten auch

I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerI Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
Apigee | Google Cloud
 
Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUM
ejlp12
 
Introducing Agile Scrum XP and Kanban
Introducing Agile Scrum XP and KanbanIntroducing Agile Scrum XP and Kanban
Introducing Agile Scrum XP and Kanban
Dimitri Ponomareff
 

Andere mochten auch (20)

I want to be an efficient developer - APIdays Barcelona version
I want to be an efficient developer - APIdays Barcelona versionI want to be an efficient developer - APIdays Barcelona version
I want to be an efficient developer - APIdays Barcelona version
 
APIfying the Web with import.io (at APIdays mediterranea)
APIfying the Web with import.io (at APIdays mediterranea)APIfying the Web with import.io (at APIdays mediterranea)
APIfying the Web with import.io (at APIdays mediterranea)
 
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
 
Build a Restfull app using drupal
Build a Restfull app using drupalBuild a Restfull app using drupal
Build a Restfull app using drupal
 
AIL Platform APIDays Mediterranea
AIL Platform APIDays MediterraneaAIL Platform APIDays Mediterranea
AIL Platform APIDays Mediterranea
 
The importance of /me
The importance of /meThe importance of /me
The importance of /me
 
Raml api designer
Raml   api designerRaml   api designer
Raml api designer
 
Managing api development
Managing api developmentManaging api development
Managing api development
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basics
 
API World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentAPI World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API development
 
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and SwaggerI Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
I Love APIs 2015 API Lab Design-first API Development Using Node and Swagger
 
Scrum and Agile SDLC 101
Scrum and Agile SDLC 101Scrum and Agile SDLC 101
Scrum and Agile SDLC 101
 
Gov APIs: The Notorious Case of Official Statistics
Gov APIs: The Notorious Case of Official StatisticsGov APIs: The Notorious Case of Official Statistics
Gov APIs: The Notorious Case of Official Statistics
 
Design Driven API Development
Design Driven API DevelopmentDesign Driven API Development
Design Driven API Development
 
Design First API's with RAML and SoapUI
Design First API's with RAML and SoapUIDesign First API's with RAML and SoapUI
Design First API's with RAML and SoapUI
 
Agile & SCRUM
Agile & SCRUMAgile & SCRUM
Agile & SCRUM
 
Case Study on agile scrum methodology on shopping cart
Case Study on agile scrum methodology on shopping cartCase Study on agile scrum methodology on shopping cart
Case Study on agile scrum methodology on shopping cart
 
High Quality Software Development with Agile and Scrum
High Quality Software Development with Agile and ScrumHigh Quality Software Development with Agile and Scrum
High Quality Software Development with Agile and Scrum
 
Introducing Agile Scrum XP and Kanban
Introducing Agile Scrum XP and KanbanIntroducing Agile Scrum XP and Kanban
Introducing Agile Scrum XP and Kanban
 
Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
 

Ähnlich wie Battelfield REST, API Development from the trenches

Ähnlich wie Battelfield REST, API Development from the trenches (20)

Lunch and Learn and Sneakers
Lunch and Learn and SneakersLunch and Learn and Sneakers
Lunch and Learn and Sneakers
 
Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)
 
technetry Broucher.pdf
technetry Broucher.pdftechnetry Broucher.pdf
technetry Broucher.pdf
 
From 50 to 500 product engineers – data-driven approach to building impactful...
From 50 to 500 product engineers – data-driven approach to building impactful...From 50 to 500 product engineers – data-driven approach to building impactful...
From 50 to 500 product engineers – data-driven approach to building impactful...
 
State of DevOps - Build the Thing Right
State of DevOps - Build the Thing RightState of DevOps - Build the Thing Right
State of DevOps - Build the Thing Right
 
Seldon: Deploying Models at Scale
Seldon: Deploying Models at ScaleSeldon: Deploying Models at Scale
Seldon: Deploying Models at Scale
 
How to build your containerization strategy
How to build your containerization strategyHow to build your containerization strategy
How to build your containerization strategy
 
Best Digital Transformation Company Toronto
Best Digital Transformation Company TorontoBest Digital Transformation Company Toronto
Best Digital Transformation Company Toronto
 
Web Design Company in Toronto
Web Design Company in TorontoWeb Design Company in Toronto
Web Design Company in Toronto
 
Top Digital Transformation Company Toronto
Top Digital Transformation Company TorontoTop Digital Transformation Company Toronto
Top Digital Transformation Company Toronto
 
Digital Transformation Strategy Services
Digital Transformation Strategy ServicesDigital Transformation Strategy Services
Digital Transformation Strategy Services
 
Digital Transformation Strategy Services
Digital Transformation Strategy ServicesDigital Transformation Strategy Services
Digital Transformation Strategy Services
 
Web Design Company Toronto
Web Design Company TorontoWeb Design Company Toronto
Web Design Company Toronto
 
The Best Cyber Security Company in Toronto
The Best Cyber Security Company in TorontoThe Best Cyber Security Company in Toronto
The Best Cyber Security Company in Toronto
 
Android & IOS App Development Toronto
Android & IOS App Development TorontoAndroid & IOS App Development Toronto
Android & IOS App Development Toronto
 
Top Blockchain Development Company Toronto
Top Blockchain Development Company TorontoTop Blockchain Development Company Toronto
Top Blockchain Development Company Toronto
 
Why Docker, Why Now?
Why Docker, Why Now?Why Docker, Why Now?
Why Docker, Why Now?
 
Skyrocketing Web APIs
Skyrocketing Web APIsSkyrocketing Web APIs
Skyrocketing Web APIs
 
CAST Imaging: Map & Master Your Software
CAST Imaging: Map & Master Your SoftwareCAST Imaging: Map & Master Your Software
CAST Imaging: Map & Master Your Software
 
The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?The microservice architecture: what, why, when and how?
The microservice architecture: what, why, when and how?
 

Mehr von Daniel Cerecedo

Mehr von Daniel Cerecedo (7)

From Legacy to the Cloud and Beyond
From Legacy to the Cloud and BeyondFrom Legacy to the Cloud and Beyond
From Legacy to the Cloud and Beyond
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous Integration
 
Introducción a Story Mapping & más
Introducción a Story Mapping & másIntroducción a Story Mapping & más
Introducción a Story Mapping & más
 
API Centric Patterns
API Centric PatternsAPI Centric Patterns
API Centric Patterns
 
Todo sobre mis APIs
Todo sobre mis APIsTodo sobre mis APIs
Todo sobre mis APIs
 
IT para Product Managers
IT para Product ManagersIT para Product Managers
IT para Product Managers
 
API Centric
API CentricAPI Centric
API Centric
 

Kürzlich hochgeladen

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 

Kürzlich hochgeladen (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

Battelfield REST, API Development from the trenches