WaspW
Wasp14mo ago
unagi7171

Is it possible to use API routers in main.wasp?

Example of a router:

import { Router } from "express";
import { UserController } from "../controllers/user.controller";
import { UserService } from "../services/user.service";
import {
  registerValidator,
  loginValidator,
} from "../validators/user.validator";
// import { validateRequest } from '../middleware/auth.middleware';
import { PrismaClient } from "@prisma/client";

export function createUserRouter(prisma: PrismaClient): Router {
  const router = Router();
  const userService = new UserService(prisma);
  const userController = new UserController(userService);

  router.post(
    "/register",
    // validateRequest,
    registerValidator,
    userController.register
  );

  router.post(
    "/login",
    // validateRequest,
    loginValidator,
    userController.login
  );

  return router;
}


Then is it possible to do this in main.wasp:

example 1:
api userRoutes {
  fn: import { createUserRouter } from "@src/server/features/user/routes/user.routes",
  entities: [],
  httpRoute: (ANY, "/api/v1")
}

example 2:
apiNamespace loginRoutes {
  fn: import { createUserRouter } from "@src/server/features/user/routes/user.routes",
  entities: [],
  path: "/api/v1"
}
Was this page helpful?