Version
接口版本可以在同一个应用程序中的控制器或者路由层面支持 不同的版本。 应用程序经常更改,在仍然需要支持以前版本的应用程序的同时,需要进行重大更改的情况并不少见。
Http-typedi 支持一下 2 种形式的版本管理:
URI 版本类型 版本在请求的 URI 中传递 (默认) Header 版本管理 在自定义的 Header 中传递版本
URI 版本类型 | 版本在请求的 URI 中传递 (默认) |
---|---|
Header 版本管理 | 在自定义的 Header 中传递版本 |
要使用版本控制,您需要在 @Version()
装饰器或Header
或使用Controller
指定版本:
我们先来看看如何使用 @Version()
装饰器:
ts
@Controller('demo')
class DemoControler {
@GetMapping('detail')
@Version('1')
getDemoDetail(demo: DemoReq) {
return 'This action returns all demos';
}
}
上述例子中它的路由将会是 /article/v1/detail
。
TIP
Version
需要从 http-typedi
包导入。
我们再来看使用 Header
的例子:
ts
@Controller('demo')
class DemoControler {
constructor(private demoService: DemoService) {}
@GetMapping('detail')
@Header('version', '1')
getDemoDetail(demo: DemoReq) {
return this.demoService.getDemoDetail(demo);
}
}
上述例子中他的请求头将会是 version: 1
。
我们再来看看如何使用 Controller
指定版本:
ts
@Controller('demo', { version: '1' })
class DemoControler {
constructor(private demoService: DemoService) {}
@GetMapping('detail')
geDemoDetail(demo: DemoReq) {
return this.demoService.getDemoDetail(demo);
}
}
上述例子中他的路由将会是 v1/demo/detail
。