Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Versioning mobile apps and apis
Search
Marek Kalnik
October 30, 2015
Technology
0
89
Versioning mobile apps and apis
Our internal workshop material
Marek Kalnik
October 30, 2015
Tweet
Share
More Decks by Marek Kalnik
See All by Marek Kalnik
Ma liste subjective des 10 développeurs à connaitre
marekkalnik
0
71
Le management LEAN
marekkalnik
0
74
Comment Ionic vous aide
marekkalnik
0
140
Pourquoi choisir Ionic ?
marekkalnik
0
260
Cordova vs. Steroids
marekkalnik
0
140
Arrêtons de parler de code de qualité, ce qu'il faut c'est du code agile !
marekkalnik
2
590
Code Agile - comment redéfinir la qualité
marekkalnik
2
180
Behat - retour d'expérience
marekkalnik
1
410
Write your jQuery in console
marekkalnik
0
180
Other Decks in Technology
See All in Technology
PLaMoの事後学習を支える技術 / PFN LLMセミナー
pfn
PRO
9
3.7k
Azure Well-Architected Framework入門
tomokusaba
0
200
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
2
500
From Prompt to Product @ How to Web 2025, Bucharest, Romania
janwerner
0
110
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
20250929_QaaS_vol20
mura_shin
0
110
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
580
インサイト情報からどこまで自動化できるか試してみた
takas0522
0
130
Pythonによる契約プログラミング入門 / PyCon JP 2025
7pairs
5
2.4k
Green Tea Garbage Collector の今
zchee
PRO
2
380
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
680
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
66k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Building Applications with DynamoDB
mza
96
6.6k
What's in a price? How to price your products and services
michaelherold
246
12k
Embracing the Ebb and Flow
colly
88
4.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Raft: Consensus for Rubyists
vanstee
139
7.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Transcript
VERSIONING MOBILE let your API and your APP evolve
SEMVER Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version
when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes.
THE APP versioning is not only about code
None
IN APP COMMUNICATION ➤ let the user know what version
he’s using, so he may communicate it to you ➤ show application version in the application itself (it may include build #)
KEEP VERSION NUMBER AUTOMATIC ➤ gulp-bump ➤ an after_prepare_hook (http://devgirl.org/2013/11/12/three-hooks-
your-cordovaphonegap-project-needs/): var version = require(__dirname + ‘../../package.json’).version ➤ gulp-git ➤ add a git tag with -a (demo time)
HOW TO HANDLE VERSIONS ➤ call URL’s with /{version_number} ?
HTTP GET: https://api.bamlab.fr/v2/hello ➤ add api-version header HTTP GET: https://api.bamlab.fr/hello api-version: 2 ➤ add Accept header HTTP GET: https://api.bamlab.fr/hello Accept: application/vnd.bamlab.v2+json
THE BACK it’s all about contract
INTEGRATE THE VERSIONING IN ROUTING ➤ http://restify.com/#versionned-routes ➤ http://www.slideshare.net/shakefon/hapidays-2014/9? src=clipshare
➤ http://www.slideshare.net/shakefon/hapidays-2014/18? src=clipshare ➤ https://github.com/felipeleusin/hapi-negotiator
NOTIFY OLD VERSIONS ➤ send a DEPRECATED header and expose
a /version route ➤ send a 410 GONE response if you are removing a ressource 410 GONE AND IT WON’T BE COMING BACK
VERSION YOUR DATA MODEL ➤ think about metadata ➤ add
meta_version_number ➤ add a transformer to transform the model before exposing it to either version