Cara Fetch API Node JS
Tags: api, javascript, node
Published: 2021-03-14 12:17:57

# Cara Fetch API Di Node JS
---

**RESTFull API** atau seringkali kita hanya menyebutkan sebagai API adalah antarmuka yang disediakan untuk berkomunikasi antar server maupun server dengan client. API memiliki anatomi yang terstandard sehingga mudah dipahami dan mudah dikonsumsi oleh pengguna yang bersangkutan. Gampangnya, asal tau endpoint, jenis metode dan parameter yang dibutuhkan maka kita sudah bisa membuat permintaan kepada suatu API.

API di lingkup pengembangan web umumnya digunakan untuk berkomunikasi antar peramban dengan server. Para pengembang web pastinya sudah terbiasa melakukan request ke sebuah API melalui aplikasi klien yang mereka buat atau bahkan langsung dari DevTools si peramban(Browser). Meski begitu, ada banyak kasus juga yang membuat kita tidak boleh ata usebaiknya tidak melakukan pemanggilan API ini di level aplikasi client, beberapa diantaranya biasanya penyebabnya adalah :bowtie:

- **Masalah CORS**
  
  Masalah classic yang selalu saja muncul sebagai pertanyaa di setiap forum pemrograman web yang ada, ketika suatu 3rd party API kok ternyata tidak bisa di hit dari aplikasi langsung dari peramban. padahal ya jelas karena memang origin tersebut tidak diperbolehkan untuk melakukan permintaan secara langsung. Solusi praktisnya biasanya dengan melakukan proxy baik melalui web server maupun lewat aplikasi Backend yang ada dalam kendali kita. Memindahkan pemanggilan API dari peramban ke aplikasi Backend merupakan salah satu solusi bila kita menghadapi problem ini, sehingga dari aplikasi client cukup memanggil Backend yang kita buat saja tanpa perlu lagi mengarahkan ke alamat aslinya.

  - **Menyembunyikan Kredensial**
  
    Beberapa API memerlukan API Key untuk bisa membuat suatu permintaan, masalahnya API Key tersebut bisa jadi adalah sebuah kredensial yang seharusnya kita jaga dan tidak boleh terekspos ke publik.

    Caranya pemanggilana API dilakukan dari Backend yang mana akan sulit untuk orang awam mengetahui apa yang terjadi di dalamnya.

## Bagaimana Melakukannya di Node JS

Sebagai orang yang baru mengenal Javascript, saya hanya menggunakan 2 cara dibawah ini untuk melakukan request ke API

1. **fetch API**
   ```javascript
    function getUser(url) {
        try{
            fetch(url)
            .then(res => res.JSON())
            .then(result => {
                return result
            })
        } catch(err) {
            throw err;
        }
    }
    getUser("https://jsonplaceholder.typicode.com/users")
   ```

2. **axios**
   
   library ini merupakan library yang populer digunakan dikalangan web developer sebagai library untuk melakukan request ke API.

   - tanpa async await
    ```javascript
        function getUsers(url) {
            axios.get(url)
            .then(res => console.log(res))
            .catch(err => {
                throw err;
            })
            .then(() => {
                // always executed
            })
        }
        
     getUsers("https://jsonplaceholder.typicode.com/users")
    ```
 - dengan async await
    

    ```javascript
      async function getUsers(url) {
         try {
             let res = await axios(url);
             return res;
         } catch(err => {
             throw err;
         })
     }
     getUsers("https://jsonplaceholder.typicode.com/users")
    ```