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