Post on 15-Apr-2017
Unnamed ProjectOriginal 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 versioningprevious 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 versioningrequirements
ExpressJS: API versioningnew flow to fit requirements
request
middlewares
response
controller V1
model
route V1
route V2 controller V2
response service(mapper)
ExpressJS: API versioningnew 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 versioningnew flow to fit requirements
Name: Roman SachenkoEmail: roman.sachenko@gmail.comSkype: roman.sachenko
DA-14 2016