1

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<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'}]

}

现在我想完成这个任务。这应该通过使用 Rel 的链接来完成:已完成。但是怎么做呢?我应该只发布到 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

}
4

1 回答 1

0

我不住在 Javascript 世界中,但我相信我采用的方法仍然有效。我创建与链接关系相关的对象。因此,您将拥有一个completeLink知道如何发出 HTTP 请求的对象和“cancelLink”对象。

它们唯一缺少的信息是您将从表示中提取的 URI。客户端可以选择更改默认回调行为,因为并非所有客户端都会对来自链接的响应执行相同的操作。但是,所有客户端都应该能够重用逻辑来实际发出 HTTP 请求,因为链接关系明确定义了该行为。

我很想看看它在 JS 中的样子。我希望我能更好地了解这门语言。

于 2013-07-10T12:18:46.183 回答