Перегружены маршруты в контроллере NestJS? - PullRequest
0 голосов
/ 11 февраля 2019

Есть ли красивый способ создания перегруженных маршрутов в приложении 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 по одному из методов ...

...