nest-router icon indicating copy to clipboard operation
nest-router copied to clipboard

Require controller and http method instead of module

Open shellking4 opened this issue 1 year ago • 1 comments

Not an issue but I have a suggestion.

Since this library is part of Nestjs core, It would be great to have a feature allowing us to just define our method in controllers without having the @Get(), @Post parts of the stuff. Then we'll have a separate route file leveraging this library. The route file would have a structure like this:

const routes: Routes = [  
    {
        path: '/my-awesome-route',
        // Here we have a syntax "ControllerClass:MethodToCallInController"
        controller: 'MyAwesomeRouteController:getSomeAwesomeThing',
        method: 'GET'
    }
]

My controller would then go like this:

// Maybe this @Controller could also be get rid of when this feature got implemented
@Controller()
export class MyAwesomeRouteController {

  constructor()  { }

  async getSomeAwesomeThing(): Promise<AwesomeThing> {
    return { "data": "some awesome things" }
  }

}

Thank you so much for all you're doing to improve our DX.

shellking4 avatar Nov 12 '22 12:11 shellking4

That could work, we can derive the @Method for them form the information we have, but what you would do with the extra functionality provided by the @Get for example? Yeah that could work, but it will be so limited. wdyt?

shekohex avatar Nov 16 '22 12:11 shekohex