kompost

Simple and elegant RESTful API framework.

Usage no npm install needed!

<script type="module">
  import kompost from 'https://cdn.skypack.dev/kompost';
</script>

README

KomPOST is currently a work in progress, do not use in a production API just yet.

KomPOST

KomPOST is a simple and elegant Node.js web API framework. It is designed to make building a RESTful API as enjoyable and easy as possible.

What does it look like?

An example of a typical controller in KomPOST looks like the following.

import ...
 
@controller("posts")
export default class PostController extends Controller {
 
    @get
    @transform(PostTransformer)
    public async index () {
        return await Post.find();
    }
 
    @get(":id")
    @transform(PostTransformer)
    public async show (id: string) {
        return await Post.findOneById(id);
    }
 
    @post
    @request(PostRequest)
    public async create (post: Post) {
        await post.save();
        return 201;
    }
 
    @put(":id")
    @request(PostRequest)
    public async update (id: string, request: Post) {
        const post = await Post.findOneById(id);
 
        Object
            .entries(request)
            .forEach(([key, value]) => post[key] = value);
 
        await post.save();
        return 204;
    }
 
    @del(":id")
    public async destroy (id: string) {
        const post = await Post.findOneById(id);
        await post.remove();
        return 204;
    }
}