Press "Enter" to skip to content

Tutorial Membuat API Menggunakan AdonisJS – Part 3

Pada tutorial ini saya akan melanjutkan artikel saya sebelumnya tentang bagaimana cara membuat API menggunakan AdonisJS dengan database MySQL. Pada part kali ini topik yang akan saya bahas adalah cara membuat Controller, Model dan Routing pada AdonisJS.

Membuat API Menggunakan AdonisJS – Controller

Ok, untuk membuat controller kita akan menggunakan perintah adonis make:controller <nama-controller>, untuk nama class controllernya sendiri kita namakan Cafe.

$ adonis make:controller Cafe
> Select controller type For HTTP requests
✔ create  app/Controllers/Http/CafeController.js

Jika berhasil, maka file CafeController.js akan muncul di folder Controller/Http. Agar Controller dapat bekerja dengan Model, maka kita harus menyertakan model Cafe didalam controller Cafe. Tambahkan kode berikut setelah kode ‘use strict’.

'use strict'

const Cafe = use('App/Models/Cafe');

class CafeController {
  
}

module.exports = CafeController

Pada kode diatas, kita melakukan import model User dan mendeklarasikan model tersebut sebagai variable User. Untuk model User akan kita buat pada pembahasan selanjutnya. Setelah kita mengimpor model User, sekarang kita membuat sebuah method baru didalam controller Cafe, sebagai contoh misalnya method store() yang digunakan untuk menyimpan data.

'use strict'

const Cafe = use('App/Models/Cafe');

class CafeController {
  async store({ request, response }) {
      try {

     } catch (err) {
          return response.status(err.status).send(err);
      }
  }
}

module.exports = CafeController;

Agar controller hanya dapat menerima request tertentu saja, kita membutuhkan sebuah function yang disediakan oleh AdonisJS yaitu request.only() yang berfungsi untuk menyaring request yang masuk dan menampungnya kedalam sebuah array. Contohnya adalah sebagai berikut :

const data = request.only(['cafe_name', 'cafe_address', 'latitude', 'longitude']);

Penjelasan pada kode diatas adalah kita akan menampung request cafe_name, cafe_address, latitude dan longitude kedalam sebuah array dan mengeksekusi method untuk menyimpan data kedalam database seperti pada contoh kode dibawah ini.

async store({ request, response }) {
      try {
          const data = request.only(['cafe_name', 'cafe_address', 'latitude', 'longitude']);
          const user = await User.create(data);
          return user;
      } catch (err) {
          return response.status(err.status).send(err);
      }
  }

Membuat API Menggunakan AdonisJS – Routing

Setelah membuat controller, sekarang kita akan berpindah sementara ke bagian Routing. Project dari AdonisJS memiliki file route.js yang terletak di folder start. Tambahkan kode berikut pada baris bagian paling bawah.

Route.post('cafe', 'CafeController.store');

Penjelasan kode diatas adalah agar kita dapat mengirimkan Request POST ke alamat http://127.0.0.1/3333/cafe. Ketika route cafe dengan request method POST diakses, maka file route akan memanggil method store() yang berada di CafeController. Mudah kan?

Membuat API Menggunakan AdonisJS – Model

Setelah selesai dengan Controller dan Routing, sekarang kita beralih ke Model. Setiap nama class pada model yang kita buat akan mempresentasikan table yang akan kita gunakan, misalnya jika kita akan membuat model User maka table yang akan kita gunakan adalah users.

Karena table yang saya buat bernama cafes maka nama class model yang akan saya buat adalah Cafe.

$ adonis make:model Cafe
✔ create  app/Models/Cafe.js

AdonisJS memiliki sebuah Active Record yang bernama Lucid ORM, fitur didalam Lucid ORM ini mirip dengan Active Record pada Ruby on Rails atau Eloquent ORM pada Laravel sehingga bagi kita yang sudah familiar dengan bahasa pemrograman Ruby on Rails atau Framework Laravel hal ini akan sangat memudahkan kita untuk memanipulasi record pada database.

Sekarang kita akan melakukan tes pada controller, model dan route yang sudah kita buat. Untuk melakukan tes request kamu bisa menggunakan Postman atau Insomnia. Kebetulan tools yang saya gunakan adalah Insomnia.

Yang kita lakukan adalah membuat request dengan method POST ke alamat dengan content-type yaitu JSON. Format JSON yang akan kita kirim adalah sebagai berikut :

{
  "cafe_name": "ROEMPI Coffee & Eatery",
  "cafe_address": "Jl. Anggrek No.27, Merdeka, Kec. Sumur Bandung, Kota Bandung, Jawa Barat 40113",
  "latitude": "-6.9130619",
  "longitude": "107.6281316"
}

Jika request yang kita kirim berhasil disimpan didalam database, maka respon yang ditampilkan adalah sebagai berikut :

{
  "cafe_name": "ROEMPI Coffee & Eatery",
  "cafe_address": "Jl. Anggrek No.27, Merdeka, Kec. Sumur Bandung, Kota Bandung, Jawa Barat 40113",
  "latitude": "-6.9130619",
  "longitude": "107.6281316",
  "created_at": "2019-10-15 01:22:24",
  "updated_at": "2019-10-15 01:22:24",
  "id": 1
}

Pada bagian ini kita sudah dapat membuat Controller, Model dan Route pada Rest API menggunakan AdonisJS dan database MySQL. Pada artikel berikutnya saya akan lengkapi dengan CRUD lengkap. Silahkan dicoba dan semoga bermanfaat.

Be First to Comment

    Tinggalkan Balasan

    Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *