2017-12-18 68 views
2

我剛剛開始使用Nestjs,想知道如何使用路由前綴或Express路由器實例來版本化我的API?版本控制Nestjs路由?

理想情況下,我想使端點通過訪問:

/v1 
/v2 

等,這樣我就可以適度地降低端點。我沒有看到我可以添加版本前綴的位置。我知道可以在應用程序實例上設置global prefix,但這不適用於特定的一組端點。

回答

3

這是關於RouterModulehttps://github.com/nestjs/nest/issues/255的公開討論。我明白這個功能有多重要,所以它應該會在不久的將來出現。此時,需要將v1/v2直接放入裝飾器@Controller()中。

+0

謝謝你的鏈接!這也回答了我關於如何分組路線的另一個問題。 – Brandon

0

路由器模塊來營救,與巢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

+0

「兒童」不是一個真正的詞。這只是複數形式的「孩子」。 – Brandon

+0

@Brandon,現在已經修復成v1.0.5了,謝謝 –