DChisel is simple Dart Framework for creating REST API
- Custom host server and port
- GET, POST, PUT, DELETE, PATCH Routes
- ORM CRUD to PostgreSQL
- ORM CRUD to MySQL
- Global Middleware
- Specific Route Middleware
- Auth
- Base Response Ok & Forbidden
- Header CORS
- Base64 decode to File
- Hotreload
To add the dchisel to your Dart application read the install instructions.
Default host is "localhost" and port 8000
import 'package:dchisel/dchisel.dart';
Future<void> main(List<String> arguments) async {
DRoute route() {
var droute = DRoute();
droute.get('/', (Request req) async => resOk("Hello, DChisel"));
return droute;
}
DChisel().serve(getroutes: route());
}
If you want to change the host to 0.0.0.0 and port to 5555 you can use :
DChisel().serve(getroutes: route(), serverHost: '0.0.0.0', serverPort: 5555);
droute.get('/hello', (Request request) {
return 'Hello, World';
});
GET with param you can use :
droute.get('/getparam/<name>', (Request request, String name) {
return 'Hello, $name';
});
droute.post('/hello', (Request request) async {
return 'Hello, World';
});
If you want to get Body value from your POST request, use :
var body = await request.body.asJson;
If you want to get Header value from your POST request, use :
var headers = await request.headers;
droute.put('/hello/<name>', (Request request, String name) async {
return 'Hello, $name';
});
PUT also can get Header and Body request
var headers = await request.headers;
var body = await request.body.asJson;
droute.delete('/hello/<name>', (Request request, String name) async {
return 'Hello, $name';
});
For now, DChisel only support PostgreSQL and MySQL
DChiselDB().configDB('dialect', // DIALECT DATABASE, IF YOU USE POSTGRESQL CHANGE 'dialect' to 'postgre', IF YOU USE MYSQL CHANGE 'dialect' to 'mysql'
host: 'your_host',
db: 'your_db_name',
port: your_port, //integer
username: 'your_db_username',
password: 'your_db_password');
DChiselDB().getAll('your_table_name');
DChiselDB().getOption('your_table_name',
column: 'your_column1,your_column2',
where: ['your_column_name', 'your_filter_value']);
If you want filter contains, just add % into your filter value, example :
'%your_filter_value%'
DChiselDB().create('users', data: {
'your_column_name': 'your_value'
});
DChiselDB().update('users', data: {
'your_column_name': 'your_value'
}, where: ['your_filter_column_name', 'your_filter_value']);
DChiselDB().deleteAll('your_table_name');
DChiselDB().deleteOption('your_table_name', where: ['your_filter_column_name', 'your_filter_value']);
Please file any issues, bugs or feature requests as an issue on our GitHub page. Commercial support is available, you can contact us at alphacsoft@gmail.com.
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature), please carefully review our contribution guide and send us your pull request.
This dchisel framework for Dart is developed by Alphacsoft.