1
是否有JavaScript的REST客戶端的最佳做法。具體來說,我想知道 如何關注鏈接。 讓說我有一個Task類REST JavaScript客戶端
public class Task
{
public long TaskId { get; set; }
public string Subject { get; set; }
public bool Completed { get; set; }
public bool Canceled { get; set; }
public List<Link> Links { get; set; }
}
讓我們說這個服務模型類的實例發送到JavaScript客戶端:
{
TaskId : '1',
Subject : 'Some',
Completed: false,
Canceled : false,
Links : [{Rel:'Completed', URL:'http://myadress/tasks/1/complete'},
{Rel:'Canceled ', URL:'http://myadress/tasks/1/cancel'}]
}
現在我想完成這個任務。這應該通過跟隨鏈接:完成。但如何做到這一點?如果我只是張貼到URL和搶任務的新的表述,或者我應該創造這樣
var x = {
TaskId : '1',
Subject : 'Some',
Completed: false,
Canceled : false,
complete : function(callback){
// post to completed URL, and callback with new representation
}
Links : [{Rel:'Complete', URL:'http://myadress/tasks/1/complete'},
{Rel:'Cancel ', URL:'http://myadress/tasks/1/cancel'}]
}
x.complete(callback);
或建立專門的功能?
function completeTask(task, callback){
var url = //search links property for rel:Colmplete and get URL
//complete task
//callback with the new representation
}
這不回答你的問題,但它可能給你靈感。查看Node.js模塊unio(https://github.com/ttezel/unio)。作爲替代HATEOAS,它更映射在一個JSON規範中的一個REST API,並提供了使用該規範理解和消費API一個通用的客戶端。即使您不能直接使用unio,它也可能會爲您提供開發客戶端代碼的一些想法。 – superEb