จุดเชื่อมโยง rel =“ ตัวเอง” ใน REST API คืออะไร?


11

ฉันมักจะเห็นสิ่งต่อไปนี้ในเอกสาร HTML

<link rel="self" href="http://example.com/something">

หรือเช่นนี้ใน JSON

 link: {
     rel="self",
     href="http://example.com/something"
 }

หรือใน XML

 <atom:link rel="self" href="http://example.com/something" />

ดังนั้นฉันมีคำถาม:

  1. ทำไมรวมลิงค์นี้ มีข้อดีอะไรบ้าง? (โปรดบอกฉันว่ามันมีเหตุผลและมันไม่ใช่แค่ "การปฏิบัติที่ดี" เครื่องราง)
  2. ฉันจะใช้ประโยชน์จากลิงก์นี้ในลูกค้าของฉันได้อย่างไร กรณีการใช้งานของลิงค์นี้มีอะไรบ้าง?
  3. เมื่อใดที่ฉันไม่ควรใช้ลิงก์นี้ เมื่อไรจึงจะไม่มีประโยชน์ที่จะรวมไว้

3
"คลิกที่นี่เพื่อคั่นหน้านี้" จะเป็นกรณีการใช้งานที่คุณสามารถใช้การอ้างอิง "ตนเอง" โดยทั่วไปเนื่องจาก REST ไม่มีสถานะเซิร์ฟเวอร์จึงไม่มีทางทราบได้ว่าคำขอมาจากที่ใดดังนั้นจึงเป็นไปได้ว่าหน้าเว็บที่ส่งคืนจะต้องทราบ URI ของตัวเอง
Roger

ดูเหมือนความคิดเห็นนี้จะทำให้ได้คำตอบที่ดีงาม :)
ไมค์แชมเบอร์เลน

คำตอบ:


8

เป็นการอ้างอิงตนเองดังนั้นลูกค้าจะรู้ว่า IRI ( http://example.com/something) เป็นตัวระบุของทรัพยากรที่การเป็นตัวแทนอยู่นั้น

มันอาจมีความสำคัญเมื่อทรัพยากรของคุณสามารถมีตัวระบุหลายตัวตัวอย่างเช่นhttp://example.com/users/1และhttp://example.com/users/1?fields="name"สามารถระบุทรัพยากรเดียวกันได้

ตามประเภทสื่อเช่น HAL คุณใช้สิ่งนี้เพื่อระบุทรัพยากรที่ฝังตัวเช่นกัน ตัวอย่างเช่น:

{
    "nick": "John",
    "_embedded": {
        "cars": {
            "items": [
                //...
            ],
            "_links": {
                "self": {
                    "href": "http://example.com/users/john/cars"
                }
            }
        }
    },
    "_links": {
        "self": {
            "href": "http://example.com/users/john"
        }
    }
}

IRI คืออะไร ส่วนใดของen.wikipedia.org/wiki/IRI ?
Marian Paździoch

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.