Create your Serverless API in seconds with Apiker
Features
- Easy routing & state management
- Basic JWT-based Auth (register, login, refresh token, delete user)
- Automatically updates Durable Object migrations, classes and bindings so you don't have to.
- Get and set object state easily. e.g:
await state().get(paramInCommonObj);
orawait state("MyObjectName").put({ myParam });
- Rate Limiting
- Firewall support (IP bans with Cloudflare Firewall)
- Ability to send emails (with Sendinblue)
- Simple Admin panel
- User geolocation
- Logging handlers
Install
To get started with your Apiker project, run:
npx apiker your-site-name
Note: If you haven't setup Wrangler yet, check out the "Development & Deployment" instructions below.
📦 Usage
Once your project is created, you can edit the app.toml
and src/
files as desired :
Counter Example
src/index.js
controllers/counter.ts
> GET /users/test/counter
Demo: https://apiker-demo.volted.co/users/test/counter
Full example: Apiker Demo or npx apiker my-demo
🔐 Auth
When the authRoutes option is set to true, Apiker will register the following default routes:
/auth/register
/auth/login
/auth/refresh
/auth/delete
> POST /auth/register
Request body:
Response (example):
Notes:
For auth implementation details, check out the source at Auth.ts
If you would like to implement your own auth, you can always copy the Auth.ts routes to your Apiker project and edit the authentication flow as needed.
⚠️ Note: Auth routes are in active development. There might be significant changes in future versions. PRs and suggestions are always welcome!
🛡️ Firewall
Apiker can interact with the Cloudflare Firewall to prevent endpoint flooding.
To enable it, set the firewall
option to true
or pass an object such as the following:
The firewall
option requires that you specify a Cloudflare Token with Firewall permissions in the .env
. Please follow this guide on how to create API tokens.
Example (in your .env file):
Notes:
- You can use the Firewall Banning and Unbanning handlers in your application at will. Just import the Firewall methods that are exported from the apiker package.
🚀 Development & Deployment
First time:
- Install Cloudflare Wrangler
- Edit your Apiker project's app.toml
wrangler login
npm run build
wrangler publish
On subsequent changes:
wrangler publish
app.toml
(also known as wrangler.toml).
✅ Contributing
PRs and issues are always welcome. Feel free to submit any issues you have at: https://github.com/hodgef/apiker/issues