Memahami Lebih Detail Apa itu HTTP REST

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Memahami Lebih Detail Apa itu HTTP REST

REST adalah singkatan dari RE presentational S tate T ransfer. Ini adalah gaya arsitektur untuk sistem hypermedia terdistribusi dan pertama kali dipresentasikan oleh Roy Fielding pada tahun 2000 dalam disertasinya.

Seperti gaya arsitektur lainnya, REST juga memiliki 6 batasan dasar sendiri yang harus dipenuhi jika sebuah interface perlu dirujuk sebagai RESTful .

Prinsip Dasar REST



  1. Client-server – Dengan memisahkan masalah interface pengguna dari masalah penyimpanan data, rest meningkatkan portabilitas interface pengguna di berbagai platform dan meningkatkan skalabilitas dengan menyederhanakan komponen server.

  2. Stateless – Setiap permintaan dari klien ke server harus berisi semua informasi yang diperlukan untuk memahami permintaan, dan tidak dapat memanfaatkan konteks yang tersimpan di server. Oleh karena itu, status sesi disimpan sepenuhnya pada klien.

  3. Cacheable – Batasan cache mengharuskan data dalam respons terhadap permintaan diberi label secara implisit atau eksplisit sebagai cacheable atau non-cacheable. Jika respons dapat di-cache, maka cache klien diberikan hak untuk menggunakan kembali data respons tersebut untuk request data yang sama di lain waktu.

  4. Uniform Interface – Dengan menerapkan prinsip umum rekayasa perangkat lunak ke interface komponen, arsitektur sistem secara keseluruhan disederhanakan dan visibilitas interaksi ditingkatkan. Untuk mendapatkan interface yang seragam, beberapa batasan arsitektur diperlukan untuk memandu perilaku komponen. REST didefinisikan oleh empat batasan antarmuka: identifikasi sumber daya; manipulasi sumber daya melalui representasi; pesan deskriptif diri; dan, hypermedia sebagai mesin status aplikasi.

  5. Layered System – Gaya sistem berlapis memungkinkan arsitektur terdiri dari lapisan hierarkis dengan membatasi perilaku komponen sedemikian rupa sehingga setiap komponen tidak dapat "melihat" di luar lapisan langsung tempat mereka berinteraksi.

  6. Code on demand (optional) – REST memungkinkan fungsionalitas klien diperluas dengan mengunduh dan mengeksekusi kode dalam bentuk applet atau skrip. Ini menyederhanakan klien dengan mengurangi jumlah fitur yang diperlukan untuk diimplementasikan sebelumnya.


http communication http communication // ilustrasi google image


HTTP Method


HTTP mendefinisikan satu set requests method untuk menunjukkan tindakan yang diinginkan untuk dilakukan oleh resource yang diberikan. Meskipun mereka juga dapat berupa kata benda, requests method ini terkadang disebut sebagai kata kerja HTTP .

Masing-masing dari mereka mengimplementasikan semantik yang berbeda, tetapi beberapa fitur umum dimiliki oleh sekelompok dari mereka: misalnya requests method bisa safe , idempoten , atau cacheable .

Brikut ini beberapa method request yang sering digunakan:


  • GET: digunakan untuk meminta representasi dari resource yang ditentukan. Permintaan menggunakan GET seharusnya hanya mengambil data.

  • HEAD: digunakan untuk meminta respon identik dengan sebuah GET permintaan, tapi tanpa respon body.

  • POST: digunakan untuk mengirimkan suatu entitas ke resource tertentu, sering menyebabkan efek perubahan pada sisi server.

  • PUT: digunakan untuk menggantikan semua representasi saat ini pada resource target dengan permintaan payload.

  • DELETE: digunakan menghapus resource tertentu.

  • CONNECT: digunakan untuk menetapkan sebuah tunnel ke server diidentifikasi oleh resource tujuan.

  • OPTIONS: digunakan untuk menggambarkan pilihan komunikasi untuk resource tujuan.

  • TRACE: digunakan untuk melakukan tes loop-kembali pesan sepanjang jalur ke resource tujuan.

  • PATCH: digunakan untuk menerapkan modifikasi parsial.


Status Codes


1xx Information

  • 100 Continue

  • 101 Switching Protocols

  • 102 Processing


2xx Success

  • 200 OK

  • 201 Created

  • 202 Accepted

  • 203 Non-authoritative Information

  • 204 No Content

  • 205 Reset Content

  • 206 Partial Content

  • 207 Multi-Status

  • 208 Already Reported

  • 226 IM Used


3xx Redirects

  • 300 Multiple Choices

  • 301 Moved Permanently

  • 302 Found

  • 303 See Other

  • 304 Not Modified

  • 305 Use Proxy

  • 307 Temporary Redirect

  • 308 Permanent Redirect


4xx Client Error

  • 400 Bad Request

  • 401 Unauthorized

  • 402 Payment Required

  • 403 Forbidden

  • 404 Not Found

  • 405 Method Not Allowed

  • 406 Not Acceptable

  • 407 Proxy Authentication Required

  • 408 Request Timeout

  • 409 Conflict

  • 410 Gone

  • 411 Length Required

  • 412 Precondition Failed

  • 413 Payload Too Large

  • 414 Request-URI Too Long

  • 415 Unsupported Media Type

  • 416 Requested Range Not Satisfiable

  • 417 Expectation Failed

  • 418 I'm a teapot

  • 421 Misdirected Request

  • 422 Unprocessable Entity

  • 423 Locked

  • 424 Failed Dependency

  • 426 Upgrade Required

  • 428 Precondition Required

  • 429 Too Many Requests

  • 431 Request Header Fields Too Large

  • 444 Connection Closed Without Response

  • 451 Unavailable For Legal Reasons

  • 499 Client Closed Request


5xx Server Error

  • 500 Internal Server Error

  • 501 Not Implemented

  • 502 Bad Gateway

  • 503 Service Unavailable

  • 504 Gateway Timeout

  • 505 HTTP Version Not Supported

  • 506 Variant Also Negotiates

  • 507 Insufficient Storage

  • 508 Loop Detected

  • 510 Not Extended

  • 511 Network Authentication Required

  • 599 Network Connect Timeout Error


Terminologi Rest API


Berikut ini adalah istilah paling penting yang terkait dengan REST API:

  • Resource adalah objek atau representasi dari sesuatu, yang memiliki beberapa data terkait dengannya dan dapat diatur metode untuk mengoperasikannya. Misalnya Hewan, sekolah, dan karyawan adalah resource dan menghapus, menambah, memperbarui adalah operasi yang akan dilakukan pada resource ini.

  • Collections adalah kumpulan resource

  • URL (Uniform Resource Locator) adalah jalur di mana resource dapat ditemukan dan beberapa tindakan dapat dilakukan di atasnya.


Baca artikel lainya:

sumber referensi : dev.to, restfulapi.net, developer mozila