Kami sedang merancang API TENANG untuk membuka informasi akun pelanggan kami. Kami memiliki representasi yang berisi referensi ke sumber daya lain yang terkait dengan sumber daya saat ini. Ini dari sejumlah praktik terbaik yang dapat kami temukan di API publik serta materi yang dipublikasikan. Representasi dapat berupa XML atau JSON.
Misalnya untuk sumber daya akun kami akan memiliki referensi ke alamat akun dan untuk sumber daya daftar paginasi, kami akan memiliki referensi ke halaman pertama, berikutnya, dan sebelumnya.
API pertama kali dirancang menggunakan tautan semantik <link title="" rel="" href="" />
seperti yang dijelaskan dalam buku O'Reilly dan digunakan dalam API oleh Netflix dan Google. Ketika tiba saatnya bagi teknisi QA kami untuk menulis rangkaian otomatisasi, mereka mengalami masalah deserialisasi tautan. Kami sekarang menyarankan elemen string uri yang lebih sederhana yang telah digunakan di API oleh Facebook dan Twitter.
Insinyur QA kami telah memecahkan masalah deserialisasi mereka, tetapi saya masih khawatir tentang kemudahan penggunaan spesifikasi API saat ini dengan tautan semantik. API kami terutama akan dikonsumsi oleh pelanggan kami dan beberapa kemitraan pihak ketiga dan kami telah pergi ke REST karena API XML-RPC sebelumnya terlalu sulit bagi konsumen kami.
tl; dr;
Pertanyaan:
Adakah yang menerapkan representasi tautan semantik mengalami masalah konsumen dengan kesulitan?
Pembaruan (21/6): Saya telah memutuskan untuk tetap dengan tautan semantik dan berharap bahwa kebingungan itu merupakan kasus tepi. Saya akan mencoba mengingat untuk menjawab pertanyaan dengan pengalaman kami setelah API terhubung dengan beberapa konsumen.
Edit: tambahkan contoh
JSON Akun Semantik:
{
"username": "paul",
"links": [
{
"title": "addresses",
"rel": "related",
"href": "http://example.com/account/paul/addresses"
},
{
"title": "history",
"rel": "related",
"href": "http://example.com/account/paul/history"
}
]
}
XML Akun Semantik:
<account>
<username>paul</username>
<link title="addresses" rel="related" href="http://example.com/account/paul/addresses" />
<link title="history" rel="related" href="http://example.com/account/paul/history" />
</account>
Akun JSON Sederhana:
{
"username": "paul",
"addresses": "http://example.com/account/paul/addresses"
"history": "http://example.com/account/paul/history"
}
XML Akun Sederhana:
<account>
<username>paul</username>
<addresses>http://example.com/account/paul/addresses</addresses>
<history>http://example.com/account/paul/history</history>
</account>