Rest API
Rest API
Method
Status Code
Clean Arsitektur
Routing
Service
Model
Repositories
Dependency Injection
Mysql Connection
Buat file helper.config.js
Buat file helper/mysql.js
CRUD
Untuk Rest API, kita akan menyediakan 5 endpoint meliputi Create, Read, Update dan Delete (CRUD). Penamaaan dan method endpoint mengikuti konsep best practice Rest API, yaitu : - GET /users --> untuk mendapatkan list seluruh users - POST /users --> untuk membuat user baru - GET /users/:id --> untuk mendapatkan satu user berdasarkan id - PUT /users/:id --> untuk mengubah data user berdasarkan id - DELETE /users/:id --> untuk menghapus user berdasarkan id - POST /login --> untuk login user
Karena menggunakan desain Clean Arsiteksur, maka struktur folder project kita meliputi:
[domain] ---- [users] ---- [repositories] ---- file-repository.js ---- [services] ---- file-service.js ---- model.js ---- route.js ---- service.js [helper] ---- file-helper.js index.js file index.js berisi :
file index.js ini simple dan hanya bertugas untuk melakukan pekerjaan middleware berupa :
- handling cors melalui middleware cors()
- handling json body parser melalui middleware express.json()
Untuk installasi cors jalankan npm install cors
Selain itu, konkesi database juga dicreate di file index,js yang nantinya akan diteruskan (diinjeksi) ke seluruh service yang membutuhkan mengikuti konsep dependency injection.
Routing dilakukan dengan memanggil routing yang ada di setiap domain.
GET /users
Buat file domain/users/route.js untuk membuat routing GET /users
Buat file domain/users/service.js
Buat file domain/users/services/list_user.js
Buat file domain/users/model.js
model merupakan entity dari User yang berisi seluruh atribut (field) dan method dari User. Dalam hal ini, user mempunyai atribut email, name, password dan age. Sementara method yang disediakan untuk endpoint ini adalah User.List.
Buat file domain/users/repositories/list_user.js
endpoint GET /users sudah bisa dicoba melalui postman

POST /users
Update file domain/users/route.js untuk menambahkan routing POST /users
Update file domain/users/service.js untuk menambahkan handling service POST /users
Update file domain/users/model.js untuk menambahkan method User.Create
Buat file domain/users/services/create_user.js
Kode di atas membutuhkan bscrypt untuk hasih password. Jangan lupa install bcrypt melalui perintah npm install bcrypt.
Buat file domain/users/repositories/create_user.js
Endpoint POST /users sudah bisa dicoba melalui postman

GET /users/:id
Update file domain/users/route.js untuk menambahkan routing GET /users/:id
Update file domain/users/service.js untuk menambahkan handling service GET /users/:id
Update file domain/users/model.js untuk menambahkan method User.View
Buat file domain/users/services/view_user.js
Buat file domain/users/repositories/view_user.js
Endpoint GET /users/:id sidah bisa dites.

PUT /users:/id
Update file domain/users/route.js untuk menambahkan routing PUT /users/:id
Update file domain/users/service.js untuk menambahkan handling service PUT /users/:id
Update file domain/users/model.js untuk menambahkan method User.Update
Buat file domain/users/services/update_user.js
Buat file domain/users/repositories/update_user.js
Endpoint PUT /users/:id sidah bisa dites.

DELETE /users/:id
Update file domain/users/route.js untuk menambahkan routing DELETE /users/:id
Update file domain/users/service.js untuk menambahkan handling service DELETE /users/:id
Update file domain/users/model.js untuk menambahkan method User.Delete
Buat file domain/users/services/delete_user.js
Buat file domain/users/repositories/delete_user.js
Endpoint DELETE /users/:id sidah bisa dites.

Login
Update file domain/users/route.js untuk menambahkan routing POST /login
Update file domain/users/service.js untuk menambahkan handling service login
Update file domain/users/model.js untuk menambahkan method User.Login
Buat file domain/users/services/login.js
Buat file domain/users/repositories/login.js
Endpoint POST /login sudah bisa dites.

Last updated
Was this helpful?