Chúng tôi đang thiết kế API RESTful để mở thông tin tài khoản của khách hàng. Chúng tôi có các đại diện có chứa các tham chiếu đến các tài nguyên khác liên quan đến tài nguyên hiện tại. Đây là từ một số thực tiễn tốt nhất mà chúng tôi có thể tìm thấy trong các API công khai cũng như các tài liệu được xuất bản. Các đại diện có thể là XML hoặc JSON.
Ví dụ: đối với tài nguyên tài khoản, chúng tôi sẽ có các tham chiếu đến địa chỉ của tài khoản và đối với tài nguyên danh sách được phân trang, chúng tôi sẽ có các tham chiếu đến các trang đầu tiên, tiếp theo và trước đó.
API lần đầu tiên được thiết kế bằng các liên kết ngữ nghĩa <link title="" rel="" href="" />
như được mô tả trong sách O'Reilly và được sử dụng trong API của Netflix và Google. Khi đến lúc các kỹ sư QA của chúng tôi viết bộ phần mềm tự động hóa, họ gặp vấn đề trong việc giải nén các liên kết. Bây giờ chúng tôi đã đề xuất các thành phần chuỗi uri đơn giản hơn đã được sử dụng trong API của Facebook và Twitter.
Kể từ đó, những người tham gia QA của chúng tôi đã giải quyết vấn đề khử lưu huỳnh, nhưng tôi vẫn lo ngại về việc dễ sử dụng thông số API hiện tại với các liên kết ngữ nghĩa. API của chúng tôi chủ yếu sẽ được sử dụng bởi khách hàng của chúng tôi và một số đối tác bên thứ ba và chúng tôi đã đến REST vì API XML-RPC trước đó quá khó đối với người tiêu dùng của chúng tôi.
tl; dr;
Câu hỏi:
Có ai đã thực hiện một đại diện liên kết ngữ nghĩa có vấn đề người tiêu dùng gặp khó khăn?
Cập nhật (21/21): Tôi đã quyết định ở lại với các liên kết ngữ nghĩa và hy vọng rằng sự nhầm lẫn là một trường hợp cạnh. Tôi sẽ cố gắng nhớ trả lời câu hỏi bằng kinh nghiệm của chúng tôi khi API tồn tại với một số người tiêu dùng.
Chỉnh sửa: thêm ví dụ
Tài khoản ngữ nghĩa JSON:
{
"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 tài khoản ngữ nghĩa:
<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>
Tài khoản JSON đơn giản:
{
"username": "paul",
"addresses": "http://example.com/account/paul/addresses"
"history": "http://example.com/account/paul/history"
}
Tài khoản XML đơn giản:
<account>
<username>paul</username>
<addresses>http://example.com/account/paul/addresses</addresses>
<history>http://example.com/account/paul/history</history>
</account>