Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iyobo/amala

Lightweight NodeJs library for creating API endpoints with Typescript decorators. Supports API versioning, OpenAPI3 and docker. Powered by Koa 2+, Koa-router and Nigerian food (amala+ewedu)
https://github.com/iyobo/amala

controller koa-router koa2 openapi3 rest-api router typescript

Last synced: about 1 month ago
JSON representation

Lightweight NodeJs library for creating API endpoints with Typescript decorators. Supports API versioning, OpenAPI3 and docker. Powered by Koa 2+, Koa-router and Nigerian food (amala+ewedu)

Awesome Lists containing this project

README

        

# Amala
![amala2](https://github.com/iyobo/amala/assets/5804246/acc68a52-1110-4e84-84b3-7529b1f0d354)

**Amala** is a decorator-based API framework for KoaJS v2+ and Typescript.
Amala is fast, light, self-documenting and Docker-ready; Perfect for microservices.

- Define your REST API endpoints using ES8 _classes_ and _decorators_.
- Inject arguments into your endpoint handlers, effectively turning your controller endpoints into standalone, testable service endpoints.
- Clean, light and FAST endpoints. Powered by Koa.
- No further magic past decorators. Full access to underlying Koa app.
- Project creator comes with fully configured Docker and Docker-compose settings for quick containerization.
- In-built OpenAPI spec exporter and Swagger UI!

This leads to clean, self-documenting API endpoints and makes it so you can re-use those service endpoints elsewhere.
It also makes your endpoint endpoints easier to test.

## Supporting Amala

**Amala** is an MIT-licensed open source project with its ongoing development made possible entirely by
community support. If Amala is helping you build
awesome APIs, please consider Becoming a Patron.

If you would like to contribute in other ways, Pull requests are also welcome!

## Getting started
You may create an Amala project with any of the following:
- `npm init amala-app `
- `npm create amala-app `
- `yarn create amala-app `

For next steps, see official docs at https://amalajs.com.