DartAPI CLI

DartAPI is a modular and developer-friendly CLI tool for building robust, typed REST APIs using the Dart language.
Rather than acting as a heavy, opinionated framework, DartAPI provides powerful code generation tools that let you build scalable backend applications with clean architecture, JWT authentication, request validation, and PostgreSQL/MySQL support.


๐Ÿ“ฆ What It Does

  • โœ… Project scaffolding (dartapi create)
  • โœ… Controller generation (dartapi generate controller)
  • โœ… Hot-reload style dev server with keyboard controls (dartapi run)
  • โœ… Integrated with:

๐Ÿš€ Installation

Activate globally:

dart pub global activate dartapi

๐Ÿ“ CLI Commands

dartapi create <project_name>

Creates a full DartAPI project with:

  • bin/main.dart
  • Controllers (UserController, AuthController, ProductController)
  • Middleware (logging, auth)
  • JWT setup with dartapi_auth
  • DB support with dartapi_db
  • DTOs and validation helpers
  • Auto schema definitions for future Swagger support

dartapi generate controller <Name>

Adds a controller to an existing DartAPI project:

dartapi generate controller Product

Generates lib/src/controllers/product_controller.dart with GET and POST methods and proper typing.


dartapi run --port <port>

Runs your DartAPI server using bin/main.dart.
You can control it interactively:

  • Type :q to quit
  • Type r to reload
dartapi run --port=8080

๐Ÿงช Example Usage

dartapi create my_app
cd my_app
dart pub get
dartapi run --port=8080

Now open Postman and test /users or /auth/login.


๐Ÿงฑ Generated Project Structure

my_app/
โ”œโ”€โ”€ bin/
โ”‚   โ””โ”€โ”€ main.dart
โ”œโ”€โ”€ lib/
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ core/           # Server/router setup
โ”‚       โ”œโ”€โ”€ controllers/    # UserController, AuthController, etc.
โ”‚       โ”œโ”€โ”€ dto/            # DTOs with schema
โ”‚       โ”œโ”€โ”€ db/             # DB connection logic
โ”‚       โ”œโ”€โ”€ middleware/     # Auth/logging middleware
โ”‚       โ””โ”€โ”€ utils/          # Validation, helpers
โ”œโ”€โ”€ pubspec.yaml
โ””โ”€โ”€ analysis_options.yaml

โœ… Why Use DartAPI?

  • Minimal but powerful
  • Follows clean architecture principles
  • Type-safe routing using ApiRoute<ApiInput, ApiOutput>
  • Built-in JWT auth and DB integration
  • Ready to extend with OpenAPI/Swagger

๐Ÿ“„ License

BSD 3-Clause License ยฉ 2025 Akash G Krishnan
LICENSE