SlideShare a Scribd company logo
API Design
Marcelo Cure / Thales Melo
Why should I care?
● It’s your company’s front door
● This is how you can earn some money
● This is how you can scale your system
● This is how you can centralize operations
Who are my consumers?
● Who are my consumers?
● How will they access my API?
● How many requests are expected?
● Which consumer profiles will exist?
Security
● Why should I care?
● Authentication
● Authorization
REST … remember?
Contracts, discuss contract changes …
...do it cautiously
… involve more people
Contracts, future perspective …
Contracts, postpone decisions …
Contracts, flexibility …
Contracts and consumers …
Comply with your consumers ….
...do not surrender to them
Contracts, T E S T S…
Versioning
● What is?
● Why versioning?
● Strategies
● Too many versions :/
● Deprecating old versions
Standards
Documentation
● Why is documentation important? (internally/externally)
● Write proper documentation, swagger sucks
Recommended reading
https://martinfowler.com/articles/consumerDrivenContracts.html
https://pt.slideshare.net/rnewton/api-design-methodology-mike-amundsen-director-of-api-architecture-api-
academy-apidays-sydney
https://www.infoq.com/br/profile/Mike-Amundsen/
https://medium.com/@__cure/importance-of-documenting-your-api-eb96ec2612f6
https://medium.com/@__cure/semantic-versioning-408b21128683
https://medium.com/@__cure/rest-anti-patterns-b128597f5430
Exercise, mother fuckers
API da NETFLIX - Subscriptions
● CRUD de usuários
● CRUD de gênero
● CRUD de filmes
● CRUD de séries
● CRUD de documentários
● subscription de filmes de uma gênero para um usuário (deve informar como receber novidades ... email, sms, zapzap)
● subscription de séries de uma gênero para um usuário (deve informar como receber novidades ... email, sms, zapzap)
● subscription de documentários de uma gÊnero para um usuário (deve informar como receber novidades ... email, sms, zapzap)
● busca de filmes de um subscription de um usuário
● busca de séries de um subscription de um usuário
● busca de documentarios de um subscription de um usuario

More Related Content

Similar to Api design

Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learned
Luram Archanjo
 
Tips on setting up an eCcommerce web site using istore
Tips on setting up an eCcommerce web site using istoreTips on setting up an eCcommerce web site using istore
Tips on setting up an eCcommerce web site using istore
ravisagaram
 
Agile + Lean Startup principles + Lean UX -> How to make it all work together!
Agile + Lean Startup principles + Lean UX -> How to make it all work together!Agile + Lean Startup principles + Lean UX -> How to make it all work together!
Agile + Lean Startup principles + Lean UX -> How to make it all work together!
Amrita Aviyente
 
AI in Retail
AI in RetailAI in Retail
AI in Retail
Subrat Panda, PhD
 
How to Become a Technical Product Manager by Goop.com Tech PM
How to Become a Technical Product Manager by Goop.com Tech PMHow to Become a Technical Product Manager by Goop.com Tech PM
How to Become a Technical Product Manager by Goop.com Tech PM
Product School
 
AI Tools & Best Practices
AI Tools  & Best PracticesAI Tools  & Best Practices
AI Tools & Best Practices
Craig Stoss
 
AppDynamics User Group
AppDynamics User GroupAppDynamics User Group
AppDynamics User Group
Mike Ruangutai
 
Data science Applications in the Enterprise
Data science Applications in the EnterpriseData science Applications in the Enterprise
Data science Applications in the Enterprise
Srinath Perera
 
Synergy My Account Design_3
Synergy My Account Design_3Synergy My Account Design_3
Synergy My Account Design_3
Martin O'Donnell
 
Early Stage Product Development - Incubadora Sinergia
Early Stage Product Development - Incubadora SinergiaEarly Stage Product Development - Incubadora Sinergia
Early Stage Product Development - Incubadora Sinergia
Riley Maguire
 
Identity management delegation and automation
Identity management delegation and automationIdentity management delegation and automation
Identity management delegation and automation
Bill Buchan
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
jamieayre
 
Enterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETEnterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NET
Anant Corporation
 
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
AgileNetwork
 
SiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team VillageSiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team Village
Alvaro Folgado Rueda
 
Presentation on developments in hiring and fintech for HKU Executive certific...
Presentation on developments in hiring and fintech for HKU Executive certific...Presentation on developments in hiring and fintech for HKU Executive certific...
Presentation on developments in hiring and fintech for HKU Executive certific...
Kok Tong (K.T.) Khoo
 
Operational Optimization Through Integration
Operational Optimization Through IntegrationOperational Optimization Through Integration
Operational Optimization Through Integration
WSO2
 
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovixapidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays
 
Open vs Closed APIs to Enabled Interoperability
Open vs Closed APIs to Enabled InteroperabilityOpen vs Closed APIs to Enabled Interoperability
Open vs Closed APIs to Enabled Interoperability
Redox Engine
 
NTC17 For the Love of Volunteers.pptx
NTC17   For the Love of Volunteers.pptxNTC17   For the Love of Volunteers.pptx
NTC17 For the Love of Volunteers.pptx
Percolator Consulting
 

Similar to Api design (20)

Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learned
 
Tips on setting up an eCcommerce web site using istore
Tips on setting up an eCcommerce web site using istoreTips on setting up an eCcommerce web site using istore
Tips on setting up an eCcommerce web site using istore
 
Agile + Lean Startup principles + Lean UX -> How to make it all work together!
Agile + Lean Startup principles + Lean UX -> How to make it all work together!Agile + Lean Startup principles + Lean UX -> How to make it all work together!
Agile + Lean Startup principles + Lean UX -> How to make it all work together!
 
AI in Retail
AI in RetailAI in Retail
AI in Retail
 
How to Become a Technical Product Manager by Goop.com Tech PM
How to Become a Technical Product Manager by Goop.com Tech PMHow to Become a Technical Product Manager by Goop.com Tech PM
How to Become a Technical Product Manager by Goop.com Tech PM
 
AI Tools & Best Practices
AI Tools  & Best PracticesAI Tools  & Best Practices
AI Tools & Best Practices
 
AppDynamics User Group
AppDynamics User GroupAppDynamics User Group
AppDynamics User Group
 
Data science Applications in the Enterprise
Data science Applications in the EnterpriseData science Applications in the Enterprise
Data science Applications in the Enterprise
 
Synergy My Account Design_3
Synergy My Account Design_3Synergy My Account Design_3
Synergy My Account Design_3
 
Early Stage Product Development - Incubadora Sinergia
Early Stage Product Development - Incubadora SinergiaEarly Stage Product Development - Incubadora Sinergia
Early Stage Product Development - Incubadora Sinergia
 
Identity management delegation and automation
Identity management delegation and automationIdentity management delegation and automation
Identity management delegation and automation
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
 
Enterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETEnterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NET
 
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
 
SiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team VillageSiestaTime - Defcon27 Red Team Village
SiestaTime - Defcon27 Red Team Village
 
Presentation on developments in hiring and fintech for HKU Executive certific...
Presentation on developments in hiring and fintech for HKU Executive certific...Presentation on developments in hiring and fintech for HKU Executive certific...
Presentation on developments in hiring and fintech for HKU Executive certific...
 
Operational Optimization Through Integration
Operational Optimization Through IntegrationOperational Optimization Through Integration
Operational Optimization Through Integration
 
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovixapidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
 
Open vs Closed APIs to Enabled Interoperability
Open vs Closed APIs to Enabled InteroperabilityOpen vs Closed APIs to Enabled Interoperability
Open vs Closed APIs to Enabled Interoperability
 
NTC17 For the Love of Volunteers.pptx
NTC17   For the Love of Volunteers.pptxNTC17   For the Love of Volunteers.pptx
NTC17 For the Love of Volunteers.pptx
 

More from Marcelo Cure

Zero mq
Zero mqZero mq
Zero mq
Marcelo Cure
 
Dev ops engineering and chatbots
Dev ops engineering and chatbotsDev ops engineering and chatbots
Dev ops engineering and chatbots
Marcelo Cure
 
Versioning APIs
Versioning APIsVersioning APIs
Versioning APIs
Marcelo Cure
 
Building restful ap is with harvester js
Building restful ap is with harvester jsBuilding restful ap is with harvester js
Building restful ap is with harvester js
Marcelo Cure
 
Cqrs, event sourcing and microservices
Cqrs, event sourcing and microservicesCqrs, event sourcing and microservices
Cqrs, event sourcing and microservices
Marcelo Cure
 
Immutability and immutable js
Immutability and immutable jsImmutability and immutable js
Immutability and immutable js
Marcelo Cure
 
Functional programming with python
Functional programming with pythonFunctional programming with python
Functional programming with python
Marcelo Cure
 
Polymer
PolymerPolymer
Polymer
Marcelo Cure
 
Hexagonal Architecture
Hexagonal ArchitectureHexagonal Architecture
Hexagonal Architecture
Marcelo Cure
 
What's the value of the metrics
What's the value of the metricsWhat's the value of the metrics
What's the value of the metrics
Marcelo Cure
 
Scala
ScalaScala
SciPy - Scientific Computing Tool
SciPy - Scientific Computing ToolSciPy - Scientific Computing Tool
SciPy - Scientific Computing Tool
Marcelo Cure
 
Test driven development
Test driven developmentTest driven development
Test driven development
Marcelo Cure
 
Usability testing
Usability testingUsability testing
Usability testing
Marcelo Cure
 
Corona
CoronaCorona
Corona
Marcelo Cure
 
Apache lucene - full text search
Apache lucene - full text searchApache lucene - full text search
Apache lucene - full text search
Marcelo Cure
 

More from Marcelo Cure (16)

Zero mq
Zero mqZero mq
Zero mq
 
Dev ops engineering and chatbots
Dev ops engineering and chatbotsDev ops engineering and chatbots
Dev ops engineering and chatbots
 
Versioning APIs
Versioning APIsVersioning APIs
Versioning APIs
 
Building restful ap is with harvester js
Building restful ap is with harvester jsBuilding restful ap is with harvester js
Building restful ap is with harvester js
 
Cqrs, event sourcing and microservices
Cqrs, event sourcing and microservicesCqrs, event sourcing and microservices
Cqrs, event sourcing and microservices
 
Immutability and immutable js
Immutability and immutable jsImmutability and immutable js
Immutability and immutable js
 
Functional programming with python
Functional programming with pythonFunctional programming with python
Functional programming with python
 
Polymer
PolymerPolymer
Polymer
 
Hexagonal Architecture
Hexagonal ArchitectureHexagonal Architecture
Hexagonal Architecture
 
What's the value of the metrics
What's the value of the metricsWhat's the value of the metrics
What's the value of the metrics
 
Scala
ScalaScala
Scala
 
SciPy - Scientific Computing Tool
SciPy - Scientific Computing ToolSciPy - Scientific Computing Tool
SciPy - Scientific Computing Tool
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Usability testing
Usability testingUsability testing
Usability testing
 
Corona
CoronaCorona
Corona
 
Apache lucene - full text search
Apache lucene - full text searchApache lucene - full text search
Apache lucene - full text search
 

Recently uploaded

Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 

Recently uploaded (16)

Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 

Api design