Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 2.33 KB

README.md

File metadata and controls

74 lines (55 loc) · 2.33 KB

spence - an simple nodejs API Framework

Opinionated API Framework For Fastify and Postgres or MongoDB for FAST coding and EXTREME extensibility

CircleCI codecov

Getting started:

  • creating a table
  • creating a controller
  • subscribe to changes

Documentation

Api Building Libraries for fastify that simplifies quickly building enterprise grade apis with reusable json schemas, open api v3 compliant documentation and generatable integration tests.

Event layer that enables event driven architectures. All changes on the persistence layer are evented. Rabbitmq & Kafka support comming soon

Repo library over mongo. Build a extensible data layer for mongo in 3 lines of code.

Repo library over postgres. Build a extensible data layer for postgres & knex in 3 lines of code.

Factories library for your tests. Generate reusable & extensible plain objects, mocks and really persisted data by specifying fixtures.

Philosophy

  • FP first
  • Productivity oriented
  • extensible and flexible. Easy to customize
  • Scalable - monolith are easy, microservices made fun
  • Best practices
    • schemas & comprehensive integration tests are the most effective ways to document and create a maintainable system
  • Performance is important
  • ORMs - only change a db for specialization reasons. The native query language is usually the best What is familiar but of no benefit:
  • DI - IoC & mocking can be done using currying or if the only purpose is testing then use module mocking.
  • Functions and Modules over Classes and Singletons

Controllers

  • adding extra routes
  • multitenant support

Events

  • why are events important?
  • monoliths
  • rabbit
  • redis
  • errors

Auth

  • api tokens
  • oauth
  • userId

Errors

  • errors & error handling
  • the importance of error reporting & aggregation

Database

  • finders
  • db configuration
  • creating an effect extension

Testing

  • jest only
  • factories & testing