เมื่อสร้างบริการ REST ด้วยข้อ จำกัดHATEOASมันง่ายมากที่จะโฆษณาการมีอยู่ของทรัพยากรผ่านการเชื่อมโยง คุณทำGET
ถึงรูทของเว็บไซต์ของฉันและฉันตอบกลับด้วยเอกสารรูทที่แสดงรายการทรัพยากรระดับแรกทั้งหมด:
{
users: { href: "/users" }
questions { href: "/questions" }
}
ลูกค้าที่เข้าใจวิธีการอ่านhref
ค่าเหล่านี้สามารถดำเนินการGET
ตามคำขอและค้นหาทรัพยากรปัจจุบันทั้งหมดที่มีอยู่ในแอปพลิเคชัน
สิ่งนี้ทำงานได้ดีสำหรับสถานการณ์การค้นหาขั้นพื้นฐาน แต่ไม่ได้ระบุว่าทรัพยากรสามารถสืบค้นได้หรือไม่ ตัวอย่างเช่นอาจมีเหตุผลที่จะดำเนินการ:
GET /users?surname=Smith
มีรูปแบบใดบ้างที่สามารถแสดงความสามารถในการสืบค้นด้วยข้อมูลที่เพียงพอที่ลูกค้าสามารถสร้างแบบสอบถามแบบเชื่อมโยงกันโดยไม่จำเป็นต้องมีความรู้มาก่อนเกี่ยวกับทรัพยากรหรือไม่
นอกจากนี้ยังมีวิธีที่จะแสดงว่าลูกค้าได้รับอนุญาตให้ดำเนินการPOST
ไปยังสถานที่ที่กำหนดพร้อมกับสถานที่ที่คาดหวัง ตัวอย่างเช่นอาจเป็นไปได้ว่าลูกค้าจะทำสิ่งต่อไปนี้เพื่อสร้างทรัพยากรคำถามใหม่:
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..."
}
เมื่อใช้ HTML เป็นรูปแบบสำหรับการบริโภคของมนุษย์เราสามารถแสดงสิ่งนี้ได้มากมายผ่านการใช้แบบฟอร์มและการแจ้งเตือนเป็นลายลักษณ์อักษรเพื่อให้มนุษย์ค้นพบการดำเนินการที่ได้รับอนุญาตให้ทำงานบนบริการ
มีรูปแบบใดบ้างที่มีความคล้ายคลึงกันสำหรับลูกค้า?