Müşterilerimizin hesap bilgilerini açmak için RESTful API tasarlıyoruz. Mevcut kaynakla ilgili diğer kaynaklara referanslar içeren temsillerimiz var. Bu, herkese açık API'larda ve yayınlanmış materyallerde bulabildiğimiz en iyi uygulamalardan. Temsiller XML veya JSON olabilir.
Örneğin, bir hesap kaynağı için hesabın adreslerine ve sayfalandırılmış liste kaynağına referanslarımız olur, ilk, sonraki ve önceki sayfalara referanslarımız olur.
API ilk <link title="" rel="" href="" />
olarak bir O'Reilly kitabında açıklandığı gibi anlamsal bağlantılar kullanılarak tasarlandı ve Netflix ve Google tarafından API'larda kullanıldı. KG mühendislerimizin otomasyon paketini yazma zamanı geldiğinde, bağlantıların serileştirilmesinde sorunlar yaşadılar. Artık Facebook ve Twitter tarafından API'larda kullanılan daha basit uri dize öğeleri öneriyoruz.
KG mühendislerimiz o zamandan beri serpiştirme sorunlarını çözdüler, ancak hala mevcut API spesifikasyonunun semantik bağlantılar ile kullanım kolaylığı konusunda bir endişem var. API'mız öncelikle müşterilerimiz ve bazı üçüncü taraf ortaklıkları tarafından tüketilecek ve önceki XML-RPC API'sı tüketicilerimiz için çok zor olduğu için REST'e gittik.
tl; dr;
Soru:
Anlamsal bağlantı temsili uygulayan herhangi biri zorlukla tüketici sorunları yaşadı mı?
Güncelleme (6/21): Anlamsal bağlantılarla kalmaya karar verdim ve karışıklığın bir uç dava olduğunu umuyorum. API bazı tüketicilerle yayınlandıktan sonra soruyu deneyimlerimizle yanıtlamayı hatırlamaya çalışacağım.
Düzenle: örnekler ekleyin
Anlamsal Hesap 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"
}
]
}
Anlamsal Hesap XML'si:
<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>
Basit Hesap JSON:
{
"username": "paul",
"addresses": "http://example.com/account/paul/addresses"
"history": "http://example.com/account/paul/history"
}
Basit Hesap XML'si:
<account>
<username>paul</username>
<addresses>http://example.com/account/paul/addresses</addresses>
<history>http://example.com/account/paul/history</history>
</account>