Dchisel adalah dart framework simpel untuk membuat 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
untuk menambahkan Dchisel pada aplikasi dart silahkan baca instruksi instalasi di sini : instruksi instalasi
"localhost" dan port "8000" adalah host dan port bawaan dari Dchisel
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());
}
jika ingin merubah host menjadi 0.0.0.0 dengan port 5555 kamu bisa gunakan:
droute.get('/hello', (Request request) {
return 'Hello, World';
droute.get('/getparam/<name>', (Request request, String name) {
return 'Hello, $name';
});
});
jika ingin menambahkan parameter pada Get route kamu bisa gunakan:
DChisel().routeGet('/getparam/<name>', (Request request, String name) {
return 'Hello, $name';
});
droute.post('/hello', (Request request) async {
return 'Hello, World';
});
jika ingin mendapatkan nilai pada body dari POST request, gunakan:
var body = await request.body.asJson;
jika ingin mendapatkan nilai dari header dari POST request gunakan:
var headers = await request.headers;
droute.put('/hello/<name>', (Request request, String name) async {
return 'Hello, $name';
});
PUT juga bisa mendapatkan request header maupun request body
var headers = await request.headers;
var body = await request.body.asJson;
droute.delete('/hello/<name>', (Request request, String name) async {
return 'Hello, $name';
});
untuk saat ini, Dchisel hanya mendukung PostgreSQL dan MySQL
DChiselDB().configDB('dialect', // DIALECT DATABASE, JIKA ANDA MENGGUNAKAN POSTGRESQL MAKA UBAH 'dialect' menjadi 'postgre', JIKA ANDA MENGGUNAKAN MYSQL MAKA UBAH 'dialect' menjadi 'mysql'
///ubah host sesuai dengan host di environtment-mu
host: 'your_host',
///ubah sesuai nama database di environtment-mu
db: 'your_db_name',
///ubah sesuai port yang digubnakan
port: your_port, //integer
///ubah sesuai username pada database
username: 'your_db_username',
///ubah sesuai password pada database
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 : jika ingin melakukan 'contains filter', hanya tambahkan '%' pada nilai filter, contoh penggunaan:
'%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']);
Mohon jika menemukan masalah, bugs atau permintaan penambahan fitur sebaga issue pada halaman GitHub kami. Dukungan komersial tersedia, anda bisa menghubungi kontak kami di [email protected]>.
Jika anda ingin melakukan kontribusi (seperti meningkatkan dokumentasi, memecahkan masalah atau menambahkan fitur baru yang keren), Dimohon untuk meninjau Panduan Kontribusi dan kirimkan pull request - mu.
Framework Dchisel untuk Dart ini dikembangkan oleh Alphacsoft.