Apa itu ADF?

DSL (Domain Specific Language) ADF didesain untuk mendokumentasikan sistem/program dan men-generate kode sesuai spesifikasi. Kode ADF mendokumentasikan desain model data dan mekanisme komunikasi antar program dalam sebuah sistem.
Explore
Lihat Cara Kerja ADF
Blueprint (*.adf)
Project Output (**/*.ts)
TypeORM Data Model
model/table/User.ts
model/enum/UserType.ts
Schema Types
ts-schema/LoginPayload.ts
ts-schema/LoginResponse.ts
ts-model/table/User.ts
ts-model/enum/UserType.ts
ExpressJS HTTP Server
expressjs-aa/ExpressAA.ts
expressjs-aa/Utility.ts
expressjs-aa/api/POST_login.ts
Axios HTTP Client
axios-client/http.ts
axios-client/api/POST_login.ts
Pada desain ADF di atas terdapat sebuah model basis data User beserta enumerasi UserType dan mekanisme komunikasi POST /login antara client dan server untuk proses login.
Dengan menggunakan code generator @graf-research/adf-codegen-api-nodejs, kode ADF di atas dapat digunakan untuk men-generate kode esensial sebuah aplikasi backend REST API dengan program NodeJS.
Eksekusi script di atas akan menghasilkan beberapa file di dalam folder lib-api/ sesuai dengan spesifikasi sistem pada blueprint.adf.
Tutorial
Tutorial di bawah akan menjelaskan bagaimana desain ADF digunakan untuk membuat program backend REST API di NodeJS. Code generator @graf-research/adf-codegen-api-nodejs menggunakan TypeORM sebagai model data dan ExpressJS sebagai HTTP server.
Prerequisite:
  1. npm v10+
  2. npx v10+
  3. node v20+
1. Persiapan
Buat folder untuk project backend NodeJS, inisialisasi NodeJS, instal dan inisialisasi typescript.
Instal typeorm reflect-metadata express cors ts-node pg class-transformer class-validator
Pada file tsconfig.json lakukan konfigurasi untuk mengaktifkan fitur dekorator typescript experimentalDecorators: true. Tambahan: atur outDir: dist agar hasil build typescript terkumpul dalam sebuah folder dist.
2. Desain ADF
Buat sebuah desain ADF, gunakan dan salin contoh desain ADF diatas, taruh di dalam file dengan nama blueprint.adf
3. Code Generator @graf-research/adf-codegen-api-nodejs
Generate kode untuk backend REST API NodeJS menggunakan kode generator di atas.
Sebuah folder berisi file-file yang dibutuhkan untuk membuat sebuah backend REST API di NodeJS akan muncul dengan nama lib-api/
4. Mulai Implementasi
Di dalam folder lib-api/ terdapat sebuah class ExpressAA yang digunakan sebagai server. Code generator @graf-research/adf-codegen-api-nodejs membatasi class ExpressAA agar menerima hanya implementasi sesuai desain ADF yang diberikan. Lakukan inisialisasi server dan mulai implementasi program backend.
Berikut contoh inisialisasi kelas ExpressAA dan implementasi API login
Compile typescript dan jalankan server
Hubungkan ke Database
Model TypeORM yang di-generate oleh @graf-research/adf-codegen-api-nodejs lengkap beserta dengan dekoratornya dan dapat menggunakan fitur TypeORM seperti auto-generated migration, akses ORM, relasi, dll. Lihat adf-codegen-model-typeorm di bagian Paduan TypeORM untuk panduan cara menggunakan fitur auto-generate migration TypeORM.
Lihat Tutorial Lengkap
What's Next?
ADF tidak terbatas pada @graf-research/adf-codegen-api-nodejs, ADF dapat diimplementasikan untuk code generator jenis apa saja selama informasi yang dibutuhkan terdapat pada desain ADF. Lihat code generator ADF yang tersedia.

Pelajari ADF Lebih Dalam

DSL (Domain Spesific Language) ADF didesain untuk mendokumentasikan sistem/program dan men-generate kode sesuai spesifikasi. Kode ADF mendokumentasikan desain model data dan mekanisme komunikasi antar program dalam sebuah sistem.
Explore
Copyright © 2024 Graf Research