Zero is a fast and lightweight Dart backend framework.
Activate the Zero CLI tool:
dart pub global activate --source git https://github.com/bryanbill/zero
# Or using -sgit
dart pub global activate -sgit https://github.com/bryanbill/zero
Create a new project:
zero new my_project
Run the project:
cd my_project
zero run
import 'package:zero/zero.dart';
void main() {
final zero = Server(
port: 9090,
routes: [
Route(
path: '/hello',
controller: (req) => IndexController(req),
),
],
);
zero.run();
print('Server running on port ${zero.port}');
}
class IndexController extends Controller {
IndexController(Request request) : super(request);
@Path('/')
static Response hello(Request request) {
return Response.ok('Hello world!');
}
}
import 'package:zero/zero.dart';
class UserController extends Controller {
UserController(Request request) : super(request);
// GET => /users
@Path('/')
static Future<Response> user(Request req) async{
await Future.delayed(Duration(seconds: 1));
return Response.ok('User');
}
// GET => /users/:id
@Path('/:id')
@Param(['id'])
static Future<Response> userById(Request req) async{
await Future.delayed(Duration(seconds: 1));
return Response.ok('User ${req.params['id']}');
}
// POST => /users
@Path('/', method: 'POST')
static Future<Response> createUser(Request req) async{
await Future.delayed(Duration(seconds: 1));
return Response.created('User created');
}
}
void main(){
final zero = Server(
port: 9090,
routes: [
Route(
path: '/users',
controller: (req) => UserController(req),
),
],
);
zero.run();
print('Server running on port ${zero.port}');
}
Contributions are welcome! Feel free to open an issue or submit a pull request if you have a way to improve this project.