Laravel API - Manajemen-Cerdas-Informasi/materi-oprec-2022 GitHub Wiki

Interaksi dengan komputer, aplikasi ataupun website membutuhkan komponen user interface. Komponen tersebut dapat berupa GUI (Graphical User Interface) berisi menu dan graphical element, keyboard, mouse dan lain-lain. Software tidak membutuhkan GUI untuk berkomunikasi. Pertukaran data dan fungsionalitas dilakukan melalui machine-readable interfaces - API.

Apa itu API?

API (Application Programming Interface) adalah sekumpulan kode program yang memungkinkan terjadinya pertukaran data antar aplikasi. Interface (antarmuka) adalah bagian yang sama antara dua atau lebih komponen terpisah pada sebuah sistem komputer dan dirancang sebagai jalur komunikasi antara dua aplikasi atau sistem yang berbeda. API memungkinkan para developer untuk mengintegrasikan dan mengizinkan dua aplikasi yang berbeda secara bersamaan untuk saling terhubung satu sama lain.

Analogi

Socket elektrik (colokan) merupakan antarmuka dari sistem elektronik yang kita gunakan dengan sistem penyedia listrik.

Seorang pelayan di restoran yang menghubungkan pelanggan dengan sistem pembuatan makanan di dapur.

Dari analogi tersebut, dapat disimpulkan bahwa pada API terdapat 3 objek utama, yaitu:

  1. Client
  2. Server
  3. Interface (API itu sendiri)

Dan terdapat dua aktivitas utama, yaitu:

  1. Request (oleh client)
  2. Response (oleh server)

Tujuan Penggunaan API

  • Untuk saling berbagi data antar aplikasi yang berbeda
  • Mempercepat proses pengembangan aplikasi dengan cara menyediakan sebuah function terpisah sehingga developer tidak perlu lagi membuat fitur yang serupa

Penerapan API

  • Bahasa Pemrograman: PHP, JavaScript, Python dll
  • Library & Framework: CodeIgniter, Laravel dll
  • Sistem Operasi: Windows API, iOS API, Android API
  • Web API / Web Service: SOAP, REST

REST API

Web service adalah salah satu bagian dari API. Contoh penggunaan di dalamnya adalah SOAP (Simple Object Access Protocol) dan REST (Representational State Transfer). Jika API digunakan untuk proses pertukaran data antar aplikasi yang terintegrasi, maka REST API adalah salah satu teknologi API yang digunakan untuk mengembangkan Web APIs. REST API merupakan gaya komunikasi/arsitektural antara server dan client. REST menggunakan HTTP untuk berkomunikasi.

REST API bersifat stateless, setiap request dari client harus berisi semua informasi yang dibutuhkan server, termasuk informasi otentikas. Dalam mengirim data, REST menggunakan XML atau JSON. Keduanya adalah bahasa yang tujuannya untuk transfer data dan human-readable sehingga pelacakan error pada REST lebih mudah. HTTP methods / Verbs memiliki peran penting dalam REST request, sepenting HTTP Status Code yang memiliki peran untuk mengirimkan response dari client request.

HTTP Methods / Verbs

REST memiliki standarisasi dalam pemakaian, yaitu URL dan HTTP methods. HTTP methods digunakan untuk mengetahui kegunaan dari URL yang diakses. Adapun metode HTTP yang secara umum dipakai dalam REST API adalah:

  • GET, mengambil data
  • POST, menambah data
  • PUT, mengubah data
  • DELETE, menghapus data

HTTP Status Code

Status yang dikirimkan dari server API ke REST client. Dalam komunikasi antar mesin, harus didefinisikan status dari response yang diberikan sehingga jika terjadi error, hal ini akan mempermudah proses trackingnya.

RESTful API

Web service yang berbasis arsitektur REST kemudian dikenal sebagai RESTful web services. Layanan web ini menggunakan metode HTTP untuk menerapkan konsep arsitektur REST.

Cara Kerja RESTful API

Sebuah client mengirimkan sebuah data atau request melalui HTTP Request dan kemudian server merespon melalui HTTP Response.

Komponen dari HTTP Request:

  • Verb, HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll.
  • Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi resource pada server.
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Request Header, berisi metadata untuk HTTP Request. Contoh, type client/browser, format yang didukung oleh client, format dari body pesan, seting cache dll.
  • Request Body, konten dari data.

Contoh HTTP Request

POST /v1/users/5303d74c64f66366f00cb9b2a94f3251bf5/posts HTTP/1.1
Host: api.medium.com
Authorization: Bearer 181d415f34379af07b2c11d144dfbe35d
Content-Type: application/json
Accept: application/json
Accept-Charset: utf-8

{
  "title": "Liverpool FC",
  "contentFormat": "html",
  "content": "<h1>Liverpool FC</h1><p>You’ll never walk alone.</p>",
  "canonicalUrl": "http://jamietalbot.com/posts/liverpool-fc",
  "tags": ["football", "sport", "Liverpool"],
  "publishStatus": "public"
}

Komponen dari HTTP Response:

  • Status/Response Code, mengindikasikan status server terhadap resource yang direquest. misal : 404, artinya resource tidak ditemukan dan 200 response OK.
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Response Header, berisi metadata untuk HTTP Response. Contoh, type server, panjang content, tipe content, waktu response, dll
  • Response Body, konten dari data yang diberikan.

Contoh HTTP Response:

HTTP/1.1 201 OK
Content-Type: application/json; charset=utf-8

{
  "data": {
    "id": "e6f36a",
    "title": "Liverpool FC",
    "authorId": "5303d74c64f66366f00cb9b2a94f3251bf5",
    "tags": ["football", "sport", "Liverpool"],
    "url": "https://medium.com/@majelbstoat/liverpool-fc-e6f36a",
    "canonicalUrl": "http://jamietalbot.com/posts/liverpool-fc",
    "publishStatus": "public",
    "publishedAt": 1442286338435,
    "license": "all-rights-reserved",
    "licenseUrl": "https://medium.com/policy/9db0094a1e0f"
  }
}

Laravel API

Latihan Laravel API

Implementasikan RESTful API pada aplikasi yang kalian buat sebelumnya. Boleh menggunakan public API jika ingin diintegrasikan ke sistem lain.

Referensi

⚠️ **GitHub.com Fallback** ⚠️