Занятие 10
29 Apr 2017
Профессия
Node.js & React.js developer
продвинутый курс
Стабильность фронта
Новые возможности
Фикс старых багов
необходимо поддерживать как минимум 3 версии API
Версионирование на уровне
Proxy (Nginx, Load Balancer)
Версионирование на уровне Node.js
Версионирование на уровне Express Router
Версионирование на уровне Моделей
версионирование
server {
server_name lsk.mgbeta.ru;
listen 80;
...
location /api/v1 {
proxy_pass http://127.0.0.1:8039;
include /projects/.nginx/proxy.conf;
}
location /api/v2 {
proxy_pass http://127.0.0.1:8040;
include /projects/.nginx/proxy.conf;
}
location / {
proxy_pass http://127.0.0.1:8038;
include /projects/.nginx/proxy.conf;
}
}
версионирование
// App.server.js
this.app.use('/api/v1', this.getDocsRouter(getDocsV1));
this.app.use('/api/v1', getApi(this));
this.app.use('/api/v2', this.getDocsRouter(getDocsV2));
this.app.use('/api/v2', getApiV2(this));
this.app.use('/api/v3', this.getDocsRouter(getDocsV3));
this.app.use('/api/v3', getApiV3(this));
// /api/v2/index.js
const apiV1 = getApiV1(ctx, params);
const api = asyncRouter();
api.use('/requests', getRequestApi(ctx));
api.use('/profiles', getProfileApi(ctx));
...
api.use(apiV1);
return api;
fetch(
`/api/v1/users/${userId}/pets/${petId}?foodSort=asc`,
{ body: {filter: ... }
})
api.post('/api/v1/users/:userId/pets/:petId'), (req) => {
req.params.userId;
req.params.petsId;
req.query;
req.body.filter;
})
при версионировании
ИНСАЙД
Какие варианты?
ИНСАЙД
Example:
Based on:
2.0 | 2014-09-08 | Release of Swagger 2.0 |
1.0 | 2011-08-10 | First release of the Swagger Specification |
Example:
any questions?
программист-предприниматель