finnow/finnow-api/README.md

16 lines
984 B
Markdown

# Finnow API
The Finnow API is primarily implemented as an HTTP REST API using D, and the [handy-httpd](https://code.dlang.org/packages/handy-httpd) library.
## Architecture
This project is set up as a _modular monolith_, where the API as a whole is broken up into mostly-independent modules. Each module can be found under `source/`, like `source/auth` for example.
Within each module, you'll usually find some of the following submodules:
* `model.d` - Defines models for this module, often database entities.
* `data.d` - Defines the data access interfaces and associated types, so that other modules can interact with it.
* `data_impl_*.d` - A concrete implementation of a submodule's data access interfaces, often using a specific technology or platform.
* `api.d` - Defines any REST API endpoints that this module exposes to the web server framework.
* `service.d` - Defines business logic and associated types that may be called by the `api.d` submodule or other modules.