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
:qto quit - Type
rto 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
π Links
- π¦ Pub.dev: dartapi
- π οΈ GitHub: github.com/akashgk/dartapi