API Request Menggunakan React & Axios

Iqbal Pambudi

March 09, 2020

Kali ini kita akan membuat sebuah API Request menggunakan ReactJS dan Axios. Apa itu Axios?. Axios adalah library untuk melakukan HTTP Request yang akhir-akhir ini lagi populer.

Untuk API kita dapat menggunakan API kita sendiri yang sebelumnya pernah kita buat di tutorial sebelumnya disini. Namun kita akan menggunakan fake API dari situs reqres.in agar lebih mudah.

Setup Project

Buat dulu project React dengan create-react-app

npx create-react-app reactaxios


Setelah itu masuk ke direktori reactaxios dan jalankan project React dengan npm start maka akan terlihat seperti berikut di browser

React Starter
Fig 1: ReactJS Starter

Membuat Layout

Kita akan membuat layout sederhana terlebih dulu menggunakan Bootstrap. Untuk dapat menggunakan Bootstrap kita install terlebih dahulu

npm install bootstrap


Kita akan membuat layout sederhana yang terdiri dari navbar, button dan list item. Buat file App.js seperti berikut

import React,{Component} from "react"
import "bootstrap/dist/css/bootstrap.min.css"

class App extends Component {
  render(){
    return (
      <div>
        <nav className="navbar navbar-light bg-secondary">
          <div className="container">
            <span className="navbar-brand text-light">ReactJS</span>
          </div>
        </nav>
  
        <div className="container mt-5">
        <button type="button" className="btn btn-primary mb-3">Request</button>
        <ul className="list-group">
          <li className="list-group-item">Cras justo odio</li>
        </ul>
        </div>
      </div>
    )
  }
}

export default App


Maka tampilan akan seperti berikut

Layouting
Fig 2: Layout

Membuat fungsi handleClick

Masih pada file App.js tambahkan sebuah fungsi handleClick didalam class App (letakkan diatas method render() ). handleClick digunakan untuk menangani button request ketika di klik.

handleClick = () => {
    console.log('Clicked!')
  }


Kemudian tambahkan atribut onClick pada button dan akan memanggil fungsi handleClick

<button type="button" className="btn btn-primary mb-3" onClick={this.handleClick}>Request</button>


Bila berhasil maka ketika button Request di klik maka akan tampil pesan “Clicked!” pada console

handleClick
Fig 3: handleClick

Membuat Request GET

Kita akan membuat sebuah API Request sederhana menggunakan Axios. Kita install terlebih dulu Axiosnya

npm install axios


Kita akan membuat sebuah state yang akan menampung value dari API Request kita. Caranya buat sebuah constructor didalam class App

constructor(){
  super()
  this.state = {
    value:[]
  }
}


Sekarang kita modifikasi fungsi handleClick agar dapat melakukan request API ke reqres.in. Buat fungsi handleClick seperti berikut

handleClick = () => {
    axios.get('https://reqres.in/api/users')
    .then(response => console.log(response))
  }


Maka hasilnya akan seperti berikut

Axios Request
Fig 4: Axios GET

Menampilkan Data

Perhatikan gambar berikut

Data
Fig 5: Struktur Objek


Kita akan mengambil data yang berada pada key data -> data. Sekarang kita akan menyimpan hasil request API kita ke state terlebih dahulu. Ubah fungsi handleClick seperti berikut

handleClick = () => {
    axios.get('https://reqres.in/api/users')
    .then(response => this.setState({value : response.data.data}))
  }


Setelah itu state value akan terlihat sebagai berikut ketika button Request di klik

State
Fig 6: State value


Setelah state value terisi dengan data API, kita akan menampilkannya dengan method map(). Pada List Group ubah seperti berikut

<ul className="list-group">
  {this.state.value.map((data, index) => (
    <li key={index} className="list-group-item">{data.first_name}</li>
  ))}
</ul>


Simpan dan jalankan maka akan terlihat seperti berikut

Mapping Data
Fig 7: Mapping Data


Yey kita sudah berhasil melakukan request API dan menampilkannya kedalam web kita 🎉. Semoga bermanfaat