Post api

POST API implementation.

Note that there is currently a bug where the API will return a *500 Server Error* response when the `Content-Type` header is set to `text/plain`. The workaround is to set it to anything else.

Remaining tasks:

- [ ] update the readme