This project is under heavy development.
Campkit is an opinionated Node.js framework for building serverless microservices. It makes a bunch of decisions so that you don't have to. Currently it works best with aws lambda and the serverless framework.
npx @campkit/cli create someServiceName
- small & simple
- define your service as a class annotating it to provide configuration
- path and query parameters are automatically injected into the class method
- service discovery built in (coming soon)
- Amazon Web Service - Lambda
import { RestController, Get, Post } from "@campkit/rest"; @RestController({ basePath: "/user" }) export class UserController { @Get({ path: "/:id" // -> GET user/1234 }) getUserById({ params }) { return { id: params.id }; } @Post({ path: "/" // -> POST user/ }) createUser({ body }){ return { user: body }; }
// index.js import { CampkitFactory } from "@campkit/core"; import { UserApp } from "./user.app"; export const handler = async (event, context) => { return await CampkitFactory.create(UserApp, { event, context }); };
// user.app.js import { App } from "@campkit/core"; import { UserController } from "./user.controller"; @App({ name: "user", restController: UserController }) export class UserApp { }
// user.controller.js import { RestController, Get, Post } from "@campkit/rest"; @RestController({ basePath: "/user" }) export class UserController { @Get({ path: "/:id" // -> GET user/1234 }) getUser({ params }) { return { message: "get user by id", id: params.id }; } @Post({ path: "/" // -> POST user/ }) createUser({ body }){ return { message: "create a user", userInfo: body }; }