我有一个控制器(文章)。
它执行路线:/articles
,/articles/:id
就是这样。
我还需要以下路线 - /articles/creator/:creatorId
,/articles/:id/like
,/articles/:id/unlike
,/articles/:id/comment
等。
无论我是需要静态路径还是动作,它都是嵌套的并且不起作用。
我的部分解决方案 - 控制器(文章),控制器(文章/创作者),控制器(文章/类似),控制器(文章/不同)。
但这是一个愚蠢的解决方案,路径和行动的概念已经丢失。
有一个优雅的解决方案来解决这个问题?以及如何以最佳方式实现这一目标?
代码:
@Controller('articles')
class ArticlesController{
@Get(':articleId')
getById(@Param('articleId') articleId){}
@Post(':articleId/like)
like(@Param('articleId') articleId){}
@Get('creator/:creatorId')
getByCreator(@Param('creatorId') creatorId:string){}
}
就像你有一个文章ID的动态路由参数一样,你也可以有一个动作:
@Controller('articles')
export class ArticlesController {
@Get(':id/:action')
findAll(@Param('id') id, @Param('action') action) {
return `You chose ${action} for article ${id}`;
}