我剛剛開始使用Nestjs,想知道如何使用路由前綴或Express路由器實例來版本化我的API?版本控制Nestjs路由?
理想情況下,我想使端點通過訪問:
/v1
/v2
等,這樣我就可以適度地降低端點。我沒有看到我可以添加版本前綴的位置。我知道可以在應用程序實例上設置global prefix,但這不適用於特定的一組端點。
我剛剛開始使用Nestjs,想知道如何使用路由前綴或Express路由器實例來版本化我的API?版本控制Nestjs路由?
理想情況下,我想使端點通過訪問:
/v1
/v2
等,這樣我就可以適度地降低端點。我沒有看到我可以添加版本前綴的位置。我知道可以在應用程序實例上設置global prefix,但這不適用於特定的一組端點。
這是關於RouterModule
https://github.com/nestjs/nest/issues/255的公開討論。我明白這個功能有多重要,所以它應該會在不久的將來出現。此時,需要將v1
/v2
直接放入裝飾器@Controller()
中。
路由器模塊來營救,與巢RouterModule
它現在是一個無痛組織您的路線。
請參閱如何輕鬆設置。
const routes: Routes = [
{
path: '/ninja',
module: NinjaModule,
children: [
{
path: '/cats',
module: CatsModule,
},
{
path: '/dogs',
module: DogsModule,
},
],
},
];
@Module({
imports: [
RouterModule.forRoutes(routes), // setup the routes
CatsModule,
DogsModule,
NinjaModule
], // as usual, nothing new
})
export class ApplicationModule {}
這會產生這樣的事情:
ninja
├──/
├── /katana
├── cats
│ ├──/
│ └── /ketty
├── dogs
├──/
└── /puppy
和肯定的是,你可以做類似的路線版本控制這個
const routes: Routes = [
{
path: '/v1',
children: [CatsModule, DogsModule],
},
{
path: '/v2',
children: [CatsModule2, DogsModule2],
},
];
不錯!
檢查出來Nest Router
「兒童」不是一個真正的詞。這只是複數形式的「孩子」。 – Brandon
@Brandon,現在已經修復成v1.0.5了,謝謝 –
謝謝你的鏈接!這也回答了我關於如何分組路線的另一個問題。 – Brandon