UsersController
とActivitiesController
の二つがある場合、activities
ルートをusers
ルートの子ルートとして実装したい場合がある。
例えば/users/:uid
の後に/activities/:id
のパスを繋いで/users/:uid/activities/:id
というパスでアクセスしたいみたいな感じ。
その場合は単純に@Controller
デコレーターにusers/:uid/activities
を渡せば良い。
... @Controller('users/:uid/activities') export class ActivitiesController { ...
そして、:uid
パラメーターを受け取る場合は@Param('uid')
をメソッドの引数で利用する。
... @Get(':id') async findOne(@Param('id') id: string, @Param('uid') uid: string) { const activity = await this.activitiesService.findOne({ id, userId: uid, }); return activity; } ...