Is it possible to use API routers in main.wasp?
Example of a router:
Then is it possible to do this in main.wasp:
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;
}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"
}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"
}