Slide 13
Slide 13 text
13
Wersjonowanie rutingu
Protokół HTTP nie definiuje sposobu wersjonowania RESTfulowych API,
przyjęto zatem rozwiązanie Semantic Versioning (SemVer)
server.get({path: '/posts/:id', version: '2.0.1'}, function (req, res, next) { ... });
server.get({path: '/posts/:id', version: '1.2.3'}, function (req, res, next) { ... });
$ curl localhost:8080/posts/8 -H 'Accept-Version: 1'
// otrzymamy wersję 1.2.3
$ curl localhost:8080/posts/8
// otrzymamy pierwszą zarejestrowaną wersję, czyli 2.0.1
$ curl localhost:8080/posts/8 -H 'Accept-Version: 3'
HTTP/1.1 400 Bad Request
{"code":"InvalidVersion","message":"GET /posts/8 supports versions: 2.0.1, 1.2.3"}
W powyższych ścieżkach możemy podać tablice kolejnych wersji
W taki sam sposób działa parametr version całego serwera, ale dotyczy
wszystkich ścieżek, którym nie nadano wersji (pełni rolę domyślną)