渡槽控制器子路由

Aqueduct controller subrouting

在 Aqueduct 控制器中是否可以进行子路由?

router.route("/userApi").link(() => UserController(context));

class UserController extends ResourceController {

@Operation.post("/login")
Future<Response> login(@Bind.body() IdWrap note) async {...}

@Operation.post("/byInnerToken")
Future<Response> login(@Bind.body() IdWrap note) async {...}

post("userApi/login", {"id": "aaa"})
post("userApi/byInnerToken", {"innerToken": "bbb"})

一般来说,是的,通过使用路径变量。

router.route("/userApi/:type").link(() => UserController(context));

class UserController extends ResourceController {
  @Operation.post('type')
  Future<Response> login(@Bind.path('type') String type, @Bind.body() IdWrap note) async {
    switch (type) {
      case "login": return login(note);
      case "byInnerToken": return withToken(note);
      default: return Response.notFound();
    }
  }
}

无法对路径变量的内容进行模式匹配。