Saat membangun layanan REST dengan batasan HATEOAS , sangat mudah untuk mengiklankan keberadaan sumber daya melalui tautan. Anda membuat GET
ke root situs saya dan saya merespons dengan dokumen root yang mencantumkan semua sumber daya tingkat pertama:
{
users: { href: "/users" }
questions { href: "/questions" }
}
Klien yang mengerti cara membaca href
nilai - nilai ini dapat melakukan GET
permintaan pada mereka dan menemukan semua sumber daya saat ini yang tersedia dalam aplikasi.
Ini berfungsi baik untuk skenario pencarian dasar, tetapi tidak menunjukkan apakah sumber daya dapat diminta. Misalnya, mungkin masuk akal untuk melakukan:
GET /users?surname=Smith
Apakah ada format yang dapat mengekspresikan kemampuan kueri ini dengan informasi yang cukup sehingga klien dapat membentuk kueri yang koheren tanpa pengetahuan sumber daya yang diperlukan sebelumnya?
Selain itu, apakah ada cara untuk menyatakan bahwa klien diizinkan untuk melakukan POST
ke lokasi tertentu dengan lokasi yang diharapkan. Misalnya, dapat diharapkan bahwa klien melakukan hal berikut untuk membuat sumber daya pertanyaan baru:
POST /questions
{
title: "Are there strategies for discovering REST services using HATEOAS?",
body: "When building a REST service with the HATEOAS constraint, it's very..."
}
Saat menggunakan HTML sebagai format untuk konsumsi manusia, kita dapat mengekspresikan banyak hal ini melalui penggunaan formulir dan permintaan tertulis untuk memungkinkan manusia menemukan operasi yang diizinkan untuk dilakukan pada layanan.
Apakah ada format yang mampu melakukan hal serupa untuk klien?