dartapi 0.1.7 copy "dartapi: ^0.1.7" to clipboard
dartapi: ^0.1.7 copied to clipboard

DartAPI is a CLI-driven project generator and toolset for building typed REST APIs in Dart.

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

There are no additional items we need to required to run the generated project.

Note: that this is not mandatory. You can remove the product controller and DB related code from the main.dart file if you don't need it.

But if you want to use the product controller, you need to install the postgres DB.

๐Ÿ”ง Step 1: Install PostgreSQL

โœ… On macOS (using Homebrew):

brew install postgresql@14
brew services start postgresql@14

โœ… On Ubuntu / Debian:

sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql

โœ… On Windows:

โ€ข	Download the PostgreSQL installer from: https://www.postgresql.org/download/windows/
โ€ข	Use the graphical installer to complete the setup.

๐Ÿ“ฆ Step 2: Create a Database

Run the following commands in your terminal or psql:

psql postgres

Then in the psql prompt:

CREATE DATABASE dartapi_test;
CREATE USER dartuser WITH ENCRYPTED PASSWORD 'postgres';
GRANT ALL PRIVILEGES ON DATABASE dartapi_test TO dartuser;

Update your DbConfig in main.dart as per your configuration:


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

Checkout the Medium article for more details.


๐Ÿ“„ License #

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


8
likes
140
points
194
downloads
screenshot

Publisher

verified publisherakashgk.com

Weekly Downloads

DartAPI is a CLI-driven project generator and toolset for building typed REST APIs in Dart.

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

path, shelf, shelf_router, shelf_static

More

Packages that depend on dartapi