RESTJavaScript客户端
javascript REST客户端是否有最佳实践。具体来说,我想知道 如何跟随链接。 假设我有一个任务类RESTJavaScript客户端,javascript,rest,asp.net-web-api,Javascript,Rest,Asp.net Web Api,javascript REST客户端是否有最佳实践。具体来说,我想知道 如何跟随链接。 假设我有一个任务类 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<L
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; }
}
现在我想完成这项任务。这应该通过以下链接完成:Rel:Completed。但如何做到这一点呢?我应该仅仅发布到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
}
我并不生活在Javascript世界中,但我相信我所采取的方法仍然是有效的。我创建与链接关系相关的对象。因此,您将拥有一个
completeLink
对象和一个知道如何发出HTTP请求的“cancelLink”对象
它们缺少的唯一信息是从表示中提取的URI。可选地,客户端可以更改默认回调行为,因为并非所有客户端都将对来自链接的响应执行相同的操作。但是,所有客户端都应该能够重用该逻辑来实际发出HTTP请求,因为链接关系明确定义了该行为
我很想看看在JS中会是什么样子。但愿我能更好地掌握这门语言。这并不能回答你的问题,但可能会给你灵感。查看Node.js模块unio()。作为HATEOAS的替代方案,它更喜欢在JSON规范中映射restapi,并提供使用该规范理解和使用API的通用客户机。即使您不能直接使用unio,它也可能会为您开发客户机代码提供一些想法。
function completeTask(task, callback){
var url = //search links property for rel:Colmplete and get URL
//complete task
//callback with the new representation
}