使用media-type-versioning时,端点的不同版本应该具有相同的 URL,并且客户端可以将Accept
标头设置为所需的版本:例如
Accept: application/vnd.adventure-works.v1+json
对于版本 2:
Accept: application/vnd.adventure-works.v2+json
控制器的伪代码:
@Controller('orders')
export class OrdersController {
@Get('orders/:id')
getOrdersV1(@Headers('Accept') acceptHeader: string) {
// accept header must be 'application/vnd.adventure-works.v1+json'
return {
orderId: 1,
orderName: 'Order 1'
};
}
@Get('orders/:id')
getOrdersV2(@Headers('Accept') acceptHeader: string) {
// accept header must be 'application/vnd.adventure-works.v2+json'
return {
orderId: 1,
name: 'Order 1'
};
}
- 我们如何在 NestJs 中实现这一点?
即我需要以某种方式告诉 NestJs 路由器,只有在接受标头具有固定值时才应调用端点对应函数: - 这可以与nestjs-swagger一起使用吗?
更新
找到一个相关的功能请求:#3569