SlideShare a Scribd company logo
1 of 10
Unnamed Project
Original faults and profits
ExpressJS: API versioning
- New database architecture
- iOS builds are not so easy to change
- Old iOS build should be supported as well as new versions
Why did we initiate API versioning?
ExpressJS: API versioning
previous flow
request middlewares responsecontroller
model
route
- New features should be implemented into API V2
- API V1 shouldn’t know about database changes
- API V1 will not be updated with new features
ExpressJS: API versioning
requirements
ExpressJS: API versioning
new flow to fit requirements
request
middlewares
response
controller V1
model
route V1
route V2 controller V2
response service
(mapper)
ExpressJS: API versioning
new flow to fit requirements - response mapper
origin url?response data process response
emulate v1 response
(map)
response service / mapper
/api/v1
/api/v2
- Create V1 and V2 routes
- Move previous controller actions to V2 folder (controllers/v2)
- Leave entities that should be changed in V1
- Convert / Migrate existing data to get it suitable with new database
structure
ExpressJS: API versioning
new flow to fit requirements
Name: Roman Sachenko
Email: roman.sachenko@gmail.com
Skype: roman.sachenko
DA-14 2016

More Related Content

What's hot

Sendspace Api Guide
Sendspace Api GuideSendspace Api Guide
Sendspace Api Guide
LiquidHub
 
Guo Shi Li-One Page-SDE
Guo Shi Li-One Page-SDEGuo Shi Li-One Page-SDE
Guo Shi Li-One Page-SDE
Guo Shi Li
 

What's hot (19)

Quantum API 1.1 proposal
Quantum API 1.1 proposalQuantum API 1.1 proposal
Quantum API 1.1 proposal
 
What's New in Mulesoft Anypoint 7.4
What's New in Mulesoft Anypoint 7.4What's New in Mulesoft Anypoint 7.4
What's New in Mulesoft Anypoint 7.4
 
Postman 101 for Students
Postman 101 for StudentsPostman 101 for Students
Postman 101 for Students
 
Sendspace Api Guide
Sendspace Api GuideSendspace Api Guide
Sendspace Api Guide
 
[GDSC-ADYPU] APIs 101 with Postman
[GDSC-ADYPU] APIs 101 with Postman[GDSC-ADYPU] APIs 101 with Postman
[GDSC-ADYPU] APIs 101 with Postman
 
Rails api + JS app
Rails api + JS appRails api + JS app
Rails api + JS app
 
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
 
Api Testing
Api TestingApi Testing
Api Testing
 
Postman Galaxy Tour - Keynote Presentation
Postman Galaxy Tour - Keynote PresentationPostman Galaxy Tour - Keynote Presentation
Postman Galaxy Tour - Keynote Presentation
 
Secure runtime properties mule4
Secure runtime properties   mule4 Secure runtime properties   mule4
Secure runtime properties mule4
 
Guo Shi Li-One Page-SDE
Guo Shi Li-One Page-SDEGuo Shi Li-One Page-SDE
Guo Shi Li-One Page-SDE
 
Postman and Fiddler for QA. Vitalii Kovaliuk
Postman and Fiddler for QA. Vitalii KovaliukPostman and Fiddler for QA. Vitalii Kovaliuk
Postman and Fiddler for QA. Vitalii Kovaliuk
 
Integration with Microsoft SharePoint using Mule ESB
Integration with Microsoft SharePoint using Mule ESBIntegration with Microsoft SharePoint using Mule ESB
Integration with Microsoft SharePoint using Mule ESB
 
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process IntegrationKaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
 
Rails engines
Rails enginesRails engines
Rails engines
 
Tech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIsTech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIs
 
Service Oriented Applications
Service Oriented ApplicationsService Oriented Applications
Service Oriented Applications
 
Spring 5
Spring 5Spring 5
Spring 5
 
Postman Galaxy Tour: San Francisco - Workshop Presentation
Postman Galaxy Tour: San Francisco -  Workshop PresentationPostman Galaxy Tour: San Francisco -  Workshop Presentation
Postman Galaxy Tour: San Francisco - Workshop Presentation
 

Viewers also liked

Podsumowanie pomocy humanitarnej 2015 vfinal
Podsumowanie pomocy humanitarnej 2015 vfinalPodsumowanie pomocy humanitarnej 2015 vfinal
Podsumowanie pomocy humanitarnej 2015 vfinal
odfoundation
 
Sprawozdanie merytoryczne 2012
Sprawozdanie merytoryczne 2012Sprawozdanie merytoryczne 2012
Sprawozdanie merytoryczne 2012
odfoundation
 
Odf report-massacre-in-odessa-pl
Odf report-massacre-in-odessa-plOdf report-massacre-in-odessa-pl
Odf report-massacre-in-odessa-pl
odfoundation
 
Krymskaya voyna 1853-1856
Krymskaya voyna 1853-1856Krymskaya voyna 1853-1856
Krymskaya voyna 1853-1856
alkinanadia
 
06.02.2014 odf ukraine_military_scenario_pl
06.02.2014 odf ukraine_military_scenario_pl06.02.2014 odf ukraine_military_scenario_pl
06.02.2014 odf ukraine_military_scenario_pl
odfoundation
 

Viewers also liked (20)

History of afghanistan railway network
History of afghanistan railway networkHistory of afghanistan railway network
History of afghanistan railway network
 
Doc092
Doc092Doc092
Doc092
 
Podsumowanie pomocy humanitarnej 2015 vfinal
Podsumowanie pomocy humanitarnej 2015 vfinalPodsumowanie pomocy humanitarnej 2015 vfinal
Podsumowanie pomocy humanitarnej 2015 vfinal
 
Odf sprawozdanie finansowe_2015
Odf sprawozdanie finansowe_2015Odf sprawozdanie finansowe_2015
Odf sprawozdanie finansowe_2015
 
CCCJ Presentation to the International Association of University Presidents (...
CCCJ Presentation to the International Association of University Presidents (...CCCJ Presentation to the International Association of University Presidents (...
CCCJ Presentation to the International Association of University Presidents (...
 
5th march English lesson
5th march English lesson5th march English lesson
5th march English lesson
 
Sprawozdanie merytoryczne 2012
Sprawozdanie merytoryczne 2012Sprawozdanie merytoryczne 2012
Sprawozdanie merytoryczne 2012
 
Aaah 2
Aaah 2Aaah 2
Aaah 2
 
Course materials chapter 5 winter 2014
Course materials chapter 5 winter 2014Course materials chapter 5 winter 2014
Course materials chapter 5 winter 2014
 
quà tặng bộ số để bàn,biểu trưng số kỷ niệm ngày thành lập
quà tặng bộ số để bàn,biểu trưng số kỷ niệm ngày thành lậpquà tặng bộ số để bàn,biểu trưng số kỷ niệm ngày thành lập
quà tặng bộ số để bàn,biểu trưng số kỷ niệm ngày thành lập
 
Carranque Roman villa
Carranque   Roman villaCarranque   Roman villa
Carranque Roman villa
 
Doc014
Doc014Doc014
Doc014
 
Pascal Gielen @ skills21kunst
Pascal Gielen @ skills21kunstPascal Gielen @ skills21kunst
Pascal Gielen @ skills21kunst
 
nes recruitment capabilities
nes recruitment capabilitiesnes recruitment capabilities
nes recruitment capabilities
 
Express js clean-controller
Express js clean-controllerExpress js clean-controller
Express js clean-controller
 
Odf report-massacre-in-odessa-pl
Odf report-massacre-in-odessa-plOdf report-massacre-in-odessa-pl
Odf report-massacre-in-odessa-pl
 
Krymskaya voyna 1853-1856
Krymskaya voyna 1853-1856Krymskaya voyna 1853-1856
Krymskaya voyna 1853-1856
 
Usb atmintuko kodavimas
Usb atmintuko kodavimasUsb atmintuko kodavimas
Usb atmintuko kodavimas
 
Windows xp servisu_aprasymas
Windows xp servisu_aprasymasWindows xp servisu_aprasymas
Windows xp servisu_aprasymas
 
06.02.2014 odf ukraine_military_scenario_pl
06.02.2014 odf ukraine_military_scenario_pl06.02.2014 odf ukraine_military_scenario_pl
06.02.2014 odf ukraine_military_scenario_pl
 

Similar to Express js api-versioning

Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online development
Jeremy Thake
 
MindyJeanneConsultant
MindyJeanneConsultantMindyJeanneConsultant
MindyJeanneConsultant
Mindy Leslie
 
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Alfredo Abate
 
Scalable Web Architectures and Infrastructure
Scalable Web Architectures and InfrastructureScalable Web Architectures and Infrastructure
Scalable Web Architectures and Infrastructure
george.james
 
RichardChauvetShortResume2015
RichardChauvetShortResume2015RichardChauvetShortResume2015
RichardChauvetShortResume2015
Richard Chauvet
 

Similar to Express js api-versioning (20)

07 restful webservices design
07 restful webservices design07 restful webservices design
07 restful webservices design
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
 
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
 
Http and REST APIs.
Http and REST APIs.Http and REST APIs.
Http and REST APIs.
 
Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1
 
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
 
Liquibase
LiquibaseLiquibase
Liquibase
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online development
 
MindyJeanneConsultant
MindyJeanneConsultantMindyJeanneConsultant
MindyJeanneConsultant
 
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
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
 
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
 
Elefrant [ng-Poznan]
Elefrant [ng-Poznan]Elefrant [ng-Poznan]
Elefrant [ng-Poznan]
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
 
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
SharePoint Connections Coast to Coast Migrating SharePoint 2007 Solutions to ...
 
Scalable Web Architectures and Infrastructure
Scalable Web Architectures and InfrastructureScalable Web Architectures and Infrastructure
Scalable Web Architectures and Infrastructure
 
RichardChauvetShortResume2015
RichardChauvetShortResume2015RichardChauvetShortResume2015
RichardChauvetShortResume2015
 
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
 

More from DA-14

More from DA-14 (11)

Tech talk Angular 2
Tech talk Angular 2Tech talk Angular 2
Tech talk Angular 2
 
AngularJS: what is underneath the hood
AngularJS: what is underneath the hood AngularJS: what is underneath the hood
AngularJS: what is underneath the hood
 
Firebase not really_yohoho
Firebase not really_yohohoFirebase not really_yohoho
Firebase not really_yohoho
 
Techtalk#8: Design patterns in real life
Techtalk#8: Design patterns in real lifeTechtalk#8: Design patterns in real life
Techtalk#8: Design patterns in real life
 
Techtalk#7: Architecture principles by Steve McConnell's book "Code Complete"
Techtalk#7: Architecture principles by Steve McConnell's book "Code Complete"Techtalk#7: Architecture principles by Steve McConnell's book "Code Complete"
Techtalk#7: Architecture principles by Steve McConnell's book "Code Complete"
 
Mysql, MongoDb feat. Doctrine2
Mysql, MongoDb feat. Doctrine2Mysql, MongoDb feat. Doctrine2
Mysql, MongoDb feat. Doctrine2
 
Web Components: back to the future
Web Components: back to the futureWeb Components: back to the future
Web Components: back to the future
 
Techtalk#6: NodeJs: pitfalls (based on game project)
Techtalk#6: NodeJs: pitfalls (based on game project)Techtalk#6: NodeJs: pitfalls (based on game project)
Techtalk#6: NodeJs: pitfalls (based on game project)
 
JS Frameworks Day April,26 of 2014
JS Frameworks Day April,26 of 2014JS Frameworks Day April,26 of 2014
JS Frameworks Day April,26 of 2014
 
TechTalk#2: Принципы управления временем
TechTalk#2: Принципы управления временемTechTalk#2: Принципы управления временем
TechTalk#2: Принципы управления временем
 
TechTalk#3: REST
TechTalk#3: RESTTechTalk#3: REST
TechTalk#3: REST
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Recently uploaded (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

Express js api-versioning

  • 3. - New database architecture - iOS builds are not so easy to change - Old iOS build should be supported as well as new versions Why did we initiate API versioning?
  • 4. ExpressJS: API versioning previous flow request middlewares responsecontroller model route
  • 5. - New features should be implemented into API V2 - API V1 shouldn’t know about database changes - API V1 will not be updated with new features ExpressJS: API versioning requirements
  • 6. ExpressJS: API versioning new flow to fit requirements request middlewares response controller V1 model route V1 route V2 controller V2 response service (mapper)
  • 7. ExpressJS: API versioning new flow to fit requirements - response mapper origin url?response data process response emulate v1 response (map) response service / mapper /api/v1 /api/v2
  • 8. - Create V1 and V2 routes - Move previous controller actions to V2 folder (controllers/v2) - Leave entities that should be changed in V1 - Convert / Migrate existing data to get it suitable with new database structure ExpressJS: API versioning new flow to fit requirements
  • 9. Name: Roman Sachenko Email: roman.sachenko@gmail.com Skype: roman.sachenko