سؤال

أقوم حاليا بإنشاء مجموعة من أنواع الوسائط المخصصة ل API مريح (مثل التطبيق / vnd.mycompany.foo + XML) وأنا أحاول تحديد إيجابيات وسلبيات طريقتين مختلفتين لفرض روابط Hypermedia.

إذا نظرت أولا إلى أن أنواع الوسائط الأخرى ربما تكون أفضل مكان للبدء هو HTML. يتيح لي HTML إنشاء روابط مثل:

<image src="http://example.com/image.gif"/>
<a href="http://example.com/page.html"/>
<form action="http://example.com/page.html"/>
<link rel="stylesheet" type="text/css" href="theme.css" />

الشيء المثير للاهتمام هنا هو أنه في بعض الحالات هناك بعض العلامات المحددة التي تحتوي على سمة URL ثم توجد علامة الرابط العام التي تستخدم سمة REL لتحديد العلاقة.

في Atompub، هناك أيضا بعض الطرق التي ترتبط فيها الموارد معا

<collection href="http://example.org/blog/main" >
         <atom:title>My Blog Entries</atom:title>
         <categories href="http://example.com/cats/forMain.cats" />
</collection>

<atom:category scheme="http://example.org/extra-cats/" term="joke" />
<atom:entry>
   <link rel="edit" href="http://example.org/edit/first-post.atom"/>
</atom:entry>

السؤال الذي سأطلبه هو متى يزيد من المنطقي استخدام عنصر الارتباط بعلاقة، ومتى يزيد من المنطقي إضافة سمة إلى عنصر موجود.

على سبيل المثال، يمكن أن يتم ارتباطات Atompub

<collection>
      <link rel="source" href="http://example.org/blog/main"/>
         <atom:title>My Blog Entries</atom:title>
         <categories>
                <link rel="source" href="http://example.com/cats/forMain.cats"/>
         </categories>
</collection>

<atom:category term="joke">
     <link rel="scheme" href="http://example.org/extra-cats/"/>
<atom:category>
<atom:entry edit="http://example.org/edit/first-post.atom"/>

كما هو الحال في كثير من الأحيان، في كتابة هذا السؤال، يبدو أن الإجابة واضحة الآن. تتعرض الروابط المطلوبة كسمات واختياريين كعناصر. ومع ذلك، سأكون مهتما بالغا في سماع آراء الآخرين حول كيفية اعتقادهم من الروابط.

هل كانت مفيدة؟

المحلول

ما أعجبني XHTML 2. كان ذلك كل عنصر يمكن أن يكون لديه رابط.

لماذا لا الرافعة المالية Xlink. لتمكين نفس الوظائف؟ بهذه الطريقة، لا حاجة للاختيار.

نصائح أخرى

أعتقد أنه دلالة أمثلة الذرة الخاصة بك مكافئة. هناك بعض الأماكن في المواصفات الذرية حيث يتم اعتبار الرابط بدون علاقة الرابط الافتراضي (سواء استدعاء هو "الذات" أو "مصدر" لا أتذكر). شخصيا، أنا أحب المثال الثاني في ATOMPUB مثال الأفضل، لأن عناصر الارتباط في إدخال ATOM (وهو كائن الأكثر استخداما عند التعامل مع الذرة بشكل عام) يحدد عناصر الارتباط مع العلاقات، واستخدام نفس المخطط في الفئة، والجمع، ومساحة العمل تعني العناصر أنه من الأسهل تحليل ث / س الذين يحتاجون إلى معرفة الكثير من الظروف الخاصة.

أنا من تجاهل أول مثال HTML لأول مرة لأن HTML الأصلي لم يكن مخصصا أبدا بالفعل لاتصال الماكينة بالطريقة، وهناك (IMO) فهم HTML أكثر صعوبة والمياه إلى الكثير من القواعد المحددة للتعامل مع كل نوع مختلف بطاقة شعار.

هذا سؤال مثير للاهتمام. طريقة واحدة للنظر إليها ستكون هي التمييز بين الروابط في الروابط "المعلوماتية" التي تصل إلى الموارد ذات الصلة، أن العميل قد ترغب (أو لا لا) يريد متابعته للحصول على مزيد من المعلومات (مثل <categories> عنصر في Atompub).

من ناحية أخرى هي الروابط التي "حدد" البروتوكول، أي أن "توجيه" العميل من خلال تسلسل تغييرات الدولة (مثل النشر / التحرير / حذف في حالة ATOMPUB، أو طلب / مراجعة / الدفع في نظام تسوق ) من مورد يشكل البروتوكول الفعلي (مثل<link rel="edit">).

في ال مقالة ستاربكس, ، يتوسع المؤلفون الفكرة بأكملها من خلال تحديد مخطط (افتراضي) لتغييرات الدولة. انهم يستخدمون <next rel="schema url" uri="uri for next resource state"> بدلا من الذرة<link rel="..." href="...">, ، ولكن الفكرة العامة هي نفسها.

بالطبع، يمكن للمرء أن يجادل هذا التالي أي يمثل الرابط تغيير حالة للعميل. لكنني أعتقد أن هذا التمييز منطقي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top