Flatburger

😴 Membuat API request sederhana dengan Insomnia

November 30, 2019 • ☕️ 5 min read

🚀 Intro

Insomnia merupakan sebuah API Testing Enviroment. Kita bisa menggunakan insomnia sebagai tools untuk menguji pada REST API yang kita buat. Untuk menguji sebuah REST API dapat menggunakan tools berupa GUI(Insomnia, Postman, etc) ataupun berupa CLI(cUrl, etc).

🧰 Kebutuhan

Untuk memakai Insomnia ada beberapa hal yang harus diketahui

🛳 Tujuan

Tujuan dari tulisan ini untuk mendemonstrasikan bagaimana HTTP Verb berupa GET,POST,PUT,PATCH,DELETE bekerja melalui Insomnia.

🛠 Membuat REST API

Untuk mempercepat simulasi pengujian REST API, backend menggunakan JSON Server. JSON Server dapat membantu membuat REST API beserta operasi CRUD-nya.

⚙️ Instalasi JSON Server

JSON server tersedia di npm. Untuk instalasi lakukan command berikut:

npm install -g json-server

menambahkan option -g akan membuat paket terinstall secara global pada sistem.

🗄 Pembuatan database

Oke, setelah install json-server kemudian buat file database berupa json. File JSON akan tereskspos sebagai REST API dan beserta operasi-crud yang akan di generate oleh json-server.

Contoh disini saya membuat database palsu berupa, movie-db.json. iya palsu kek cintamu mbak 🙂

{
    "movie": [
      {
        "id": 1,
        "title": "Joker",
        "description": "In Gotham City, mentally troubled comedian Arthur Fleck is disregarded and mistreated by society. He then embarks on a downward spiral of revolution and bloody crime. This path brings him face-to-face with his alter-ego: the Joker.",
        "director": "Todd Phillips",
        "release_date": 2019
      },
      {
        "id": 2,
        "title": "Inception",
        "description": "A thief who steals corporate secrets through the use of dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O.",
        "director": "Christopher Nolan",
        "release_date": 2010
      },
      {
        "id": 3,
        "title": "Solo: A Star Wars Story",
        "description": "During an adventure into the criminal underworld, Han Solo meets his future co-pilot Chewbacca and encounters Lando Calrissian years before joining the Rebellion.",
        "director": "Ron Howard",
        "release_date": 2018
      },
      {
        "id": 4,
        "title": "Rogue One: A Star Wars Story",
        "description": "The daughter of an Imperial scientist joins the Rebel Alliance in a risky move to steal the Death Star plans.",
        "director": "Gareth Edwards",
        "release_date": 2016
      },
      {
        "id": 5,
        "title": "The Dark Knight",
        "description": "When the menace known as the Joker wreaks havoc and chaos on the people of Gotham, Batman must accept one of the greatest psychological and physical tests of his ability to fight injustice.",
        "director": "Christopher Nolan",
        "release_date": 2008
      }
    ]
}

⚙️ Menjalankan Server

Menjalankan JSON Server dengan menjalankan command berupa:

json-server --watch file.json

Akan muncul penampakan sperti berikut pada terminal :

CLI

🔫 Uji Coba REST API

  • GET

Buka insomnia kemudian masukkan URL http://localhost:3000/movie menggunakan method GET dan akan menampilkan hal seperti berikut:

Insomnia GET

  • POST

Method POST digunakan untuk menambahkan data baru, di dalam insomnia banyak opsi. Untuk melakukan demonstrasi kali ini menggunakan opsi JSON.

Contoh POST berupa JSON:

Insomnia POST

Akan menampilkan perubahan seperti berikut ketika record baru berhasil ditambahkan:

Insomnia POST

  • PUT & PATCH

PUT digunakan untuk mengubah seluruh bagian sebuah record yang sudah ada dengan perubahan baru yang ditentukan, berbeda dengan PATCH yang dapat mengubah bagian tertentu dalam sebuah record.

PUT membutuhkan semua body dikirim apabila terdapat data kosong maka data dari field tersebut akan dihapus.

Insomnia PUT

mengubah record data ber-id 6, demonstrasi diatas hanya mengubah record data dari field title ‘Aquambyar’ menjadi menjadi ‘Aquambyar Sekali’ dan membiarkan field lainnya kosong(tidak diisi).Kemudian apa yang terjadi? data ber-id kan 6 akan menghapus field title dan description secara otomatis dikarenakan PUT membutuhkan semua data body untuk melakukan perubahan data.

PATCH dapat merubah bagian data yang ada, dan tidak perlu mengirimkan seluruh body pada saat melakukan request

Insomnia PATCH

*mengubah record data ber-id 6, pada demonstrasi diatas hanya mengubah record data dari field title ‘Aquambyar Sekali’ menjadi menjadi ‘Aquambyar Tida Ambyar’ dan membiarkan field lainnya kosong(tidak diisi). Berbeda dengan PUT mengosongkan field title dan description data tidak akan kosong melainkan akan tetap, dikarenakan PUT tidak membutuhkan semua data body untuk diubah tetapi membolehkan hanya beberapa bagian tertentu yang akan diubah.

💁🏻‍♂️ Kesimpulan

Artikel ditujukan untuk memahami konsep dasar dari REST API dan API Testing Enviroment serta bertujuan untuk menyelamatkan indonesia dari darurat membaca dan artikel ini ditulis sesingkat mungkin 🙂.

📚 Sumber Referensi