Karena kesal main game moba kena lose streak, jadi saya kali ini iseng share membuat CRUD dengan cepat menggunakan nestjs framework. bagi yang belum mengenal nestjs bisa membaca terlebih dahulu di artikel ini (berkenalan dengan nestjs oleh ahmad arif) penjelasannya sangat mudah di mengerti.
Di tutorial ini saya akan membuat Backend CRUD TodoList. Kita akan menggunakan mysql dan TypeOrm untuk ORM -nya. Kita akan menggunakan nestjsx/crud untuk operasi CRUD nya.
Sebelum kita mulai pastikan sudah terinstall mysql dan nestjs.
Kita Mulai yukz!
Pertama-tama kita buat projectnya dengan nestjs-cli:
lalu setelah itu kita install typeorm, mysql library dan dotenv:
kita buat .env dan koneksi database untuk konfigurasi aplikasinya:
kita edit .env yang telah di buat dan pastikan konfigurasi nya sesuai dengan laptop:
sekarang kita edit database-connection.service.ts dan tambahkan kode berikut:
setelah membuat koneksi database, sekarang kita import typeORM module di app.module.ts :
Database telah di konfigurasi, kita akan check apakah konfigurasi kita berhasil:
kita akan melihat seperti ini jika koneksi database berhasil :
sekarang kita akan buat todo module, service dan controller:
setelah generate module, service dan controller kita akan menginstall nesjsx/crud :
sekarang kita buat todo entity :
lalu kita edit todo.entity.ts :
kita telah berhasil membuat table todos di database.
sekarang kita mulai membuat operasi crud nya.
kita edit todo.service.ts dan tambahkan kode berikut:
lalu kita edit todo.controller.ts dan tambahkan juga kode di bawah ini:
dan jangan lupa tambahkan di app.module.ts :
Sebenarnya kita sudah beres membuat operasi crud sampai disini, bingung ga? kenapa ga ada @Post, @Get, @Put, @Patch, @Delete methods? itu karena nestjsx/crud telah meng-handle semua fungsi tersebut.
sekarang kita akan setup OpenAPI, kita akan menggunakan nestjs swagger:
setelah menginstall kita edit main.ts:
lalu sekarang buka browser dan akses ke localhost:3000/api/docs:
sekarang kita bisa lihat bebagai macam todo endpoints, tapi kayanya ada yang kurang. kita harus membuat api tags dan field.
kalau begitu mari kita buat DTO nya:
dan tambahkan kode berikut di todo.dto.ts
edit juga di todo.controller.ts :
dan sekarang kita sudah melihat fields di swaggernya:
nestjsx/crud lengkap dengan bebagai query untuk kebutuhan pagination dan searching
Kesimpulan
nestjsx/crud memudahkan kita untuk membuat crud secara cepat tapi kita harus banyak membaca dokumentasinya di sesuaikan dengan kebutuhan kita.
Comments