REST API - Apa itu HATEOAS?

Di artikel ini, Anda akan terus menjelajahi API REST dan belajar tentang HATEOAS.

Saat melihat halaman web, Anda dapat melihat data pada halaman dan melakukan tindakan dengannya.

Bagaimana dengan REST API? Biasanya, ketika Anda meminta sumber daya REST, Anda mendapatkan informasi sumber daya kembali. Bagaimana dengan mengirim operasi yang dapat Anda lakukan dengan sumber daya dalam respons?



Anda akan belajar:


  • Apa itu HATEOAS?
  • Mengapa Anda perlu menggunakan HATEOAS?
  • Kapan harus menggunakan HATEOAS?

API SISA


Ini adalah artikel kelima dari serangkaian artikel tentang REST API:


Apa arti HATEOAS?


Istilah HATEOAS berarti frasa “Hypermedia A Engine Engine of splate” (Hypermedia sebagai engine of application state). Untuk memahami ini lebih dalam, pertama-tama kita perlu memahami arti hypermedia. Lihatlah halaman web berikut:



Saat browser memuat halaman, Anda pasti dapat melihat semua konten yang ditawarkan halaman ini. Lebih menariknya, halaman ini juga memungkinkan Anda melakukan banyak tindakan dengan data ini, misalnya:

  • Menekan tombol (hijau "Kloning" atau "Unduh" (Unduh)
  • Mengklik tab (misalnya, untuk melihat "Masalah")
  • dan beberapa lagi

Sekarang mari kita lihat bagaimana perilaku REST API kami:

Jika Anda melihat permintaan GET yang khas ke server RESTful seperti ini:



Permintaan GET localhost : 8080 / pengguna menerima dataset dari tiga pengguna dalam kasus ini. Dengan mengirim permintaan menggunakan GET localhost : 8080 / pengguna / 1 , Anda hanya akan menerima informasi tentang pengguna pertama. Sebagai aturan, ketika kami menjalankan permintaan REST, kami hanya mendapatkan data, dan tidak ada tindakan apa pun dengan mereka. Di sinilah HATEOAS mengisi kekosongan. Permintaan HATEOAS memungkinkan Anda untuk tidak hanya mengirim data, tetapi juga menunjukkan tindakan terkait:



Contoh ini dalam format JSON. Format XML untuk contoh lain akan terlihat seperti ini:



Saat Anda mengirim permintaan ini untuk mendapatkan informasi akun, Anda mendapatkan keduanya:

  • Nomor Akun dan Data Saldo
  • Tautan yang menyediakan tindakan untuk menyetor / menarik / mentransfer / menutup

Dengan HATEOAS, permintaan untuk sumber daya REST memberi saya data dan tindakan terkait data.

Mengapa kita membutuhkan HATEOAS?


Satu-satunya alasan paling penting untuk HATEOAS adalah kopling longgar. Jika konsumen layanan REST perlu melakukan hard-code pada semua URL sumber daya, itu terkait erat dengan implementasi layanan Anda. Sebaliknya, jika Anda mengembalikan URL yang dapat digunakan untuk tindakan, itu akan digabungkan secara longgar. Tidak ada ketergantungan ketat pada struktur URI, seperti yang ditunjukkan dan digunakan dalam respons. Beberapa topik penting yang terkait dengan HATEOAS:

HAL - Bahasa Aplikasi Hypertext


Saat mengembangkan layanan RESTful, Anda harus menentukan cara mengembalikan data dan tautan yang cocok dengan permintaan. HAL adalah format yang menyediakan cara sederhana dan konsisten untuk hyperlink antara sumber daya di REST API Anda. Berikut ini sebuah contoh:



Dengan HAL, Anda memiliki beberapa kategori tampilan:

  • Tautan : ditunjukkan sebagai kombinasi
  • Target - ditentukan sebagai URI
  • Relasi - Nama
  • Sumberdaya Tertanam : sumber daya lain yang terkandung dalam sumber daya REST ini
  • Negara: data sumber daya aktual

Jika Anda menggunakan Spring Framework untuk mengembangkan layanan REST, maka Spring HATEOAS adalah mekanisme yang baik untuk layanan Anda.

Pada masalah ini ada video penulis.

Ringkasan


Dalam artikel ini, kami melihat apa artinya HATEOAS.

Dengan HATEOAS, respons terhadap permintaan REST mengembalikan tidak hanya data, tetapi juga tindakan yang dapat dilakukan pada sumber daya.

Ini membantu membuat aplikasi digabungkan secara longgar.

Bacaan tambahan


ISTIRAHAT + MongoDB + HATEOAS?

Layanan Istirahat HATEOAS Dengan Musim Semi

Spring HATEOAS: Hypermedia APIs with Spring (ditambahkan oleh penerjemah)

Source: https://habr.com/ru/post/id483328/


All Articles