Overview
Tasks
An Aqueduct application serves HTTP clients by sending responses for requests.
You create and link Controller
objects to handle requests. There are many subclasses of Controller
that handle common tasks, and you often create your own subclasses of Controller
to implement application logic. Most of your logic is implemented in subclasses of ResourceController
, a controller type geared for REST API endpoints.
You create a subclass of ApplicationChannel
to configure controllers used by your application. This subclass also initializes any services your application will use to fulfill requests, like database connections or third party API connections. Most often, you use a Router
controller at the entry point of your application channel to modularize your application logic.
Your application may have many configurable options. This configuration is handled in your application channel. Configuration file management is provided by application-specific Configuration
subclasses that add type and name safety to your configuration files.
Your application is run by using the aqueduct serve
command or the bin/main.dart
script. In either case, your application starts by creating multiple, memory-isolated threads that replicate your ApplicationChannel
.