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
};
}