koa-api-builder

0.2.4 • Public • Published

Koa-api-builder

tests and coverage npm version license

Helper to build koa-router apis easily

Dependencies

  • node 14 or higher
  • koa-router
  • koa

Sample usage

import ApiBuilder from "koa-api-builder";

const group = new ApiBuilder().path((group) => {
  group.post('/login', loginRequest)
    .post('/signup', signupRequest)
    .path('/user/:userId/accounts', ifAuthenticated, (group) => {
      group.get(listAccountsRequest)
        .post(ifAllowed, insertAccountRequest)
        .path('/:accountId', (group) => {
          group.get(findAccountRequest);
          group.put(updateAccountRequest);
          group.del(ifAllowed, delAccountRequest);
          group.get('/transactions', listTransactionsRequest);
        });
    });
});

// then we build our api definition into a regular koa-router
const router = group.build();

Similar libraries

See router section on koa wiki

Inspiration

This api builder is heavily copied from Javalin's group handler

Roadmap

  • [X] Initial implementation
  • [X] Test and coverage
  • [X] Publish npm package
  • [X] Add linting tool
  • [X] Publish every new tag
  • [ ] Publish coverage results
  • [ ] Add special render pseudo-verb for template engines
  • [ ] Add Server Sent Events configuration support
  • [ ] Add WebSockets configuration support

See the changelog for more details

Package Sidebar

Install

npm i koa-api-builder

Weekly Downloads

1

Version

0.2.4

License

MIT

Unpacked Size

19.3 kB

Total Files

5

Last publish

Collaborators

  • sombriks