Есть ли красивый способ создания перегруженных маршрутов в приложении NestJS?У меня есть мысли, но, может быть, я изобрел колесо.Я не смог найти никакого готового подхода, хотя ...
Я имею в виду что-то вроде этого (давайте возьмем https://github.com/nestjs/nest/blob/master/sample/01-cats-app/src/cats/cats.controller.ts в качестве начальной точки):
@Get()
async findAll(): Promise<Cat[]> {
return this.catsService.findAll();
}
@Get()
@Roles('admin')
async findAllAdmin(): Promise<Cat[]> {
return this.catsService.findAllAdmin();
}
Другими словами, я хочу иметь два маршрута с одним и тем же URL, но отличаться некоторыми другими значениями (например, ролью здесь).
Моя идея состояла в том, чтобы создать собственный декоратор вместо Get , который заполнит некоторую карту весов, назначит каждому перегруженному методу уникальный путь.Затем добавьте промежуточное программное обеспечение, которое будет получать параметры из запроса, сравнивать их с картой и выполнять внутреннее перенаправление (с next('route')
или req.app.handle(req, res)
) на соответствующий новый путь.
Но при таком подходе я не смогПользователь не может получить запрос, если он должен быть аутентифицирован с помощью AuthGuard по одному из методов ...