你在REST中直接编码是什么意思?

时间:2012-10-04 13:48:26

标签: rest

skydrive LiveConnect Api网站中,他们提供了javascript,java,c#和REST等选项。

它举了一个例子说“如果你直接在REST中编码”

1)我们如何直接在REST中编码?

PS:我知道REST是什么,但我无法弄清楚如何使用javascript在网站中提供的REST?

如果有人对此有所了解,那将会非常有帮助。

1 个答案:

答案 0 :(得分:1)

实际上,当你说Rest时,你会想要一个带有端点的服务,它使用HTTP动词(GET,POST等),并按照名称中的说法完成工作。如果您的站点完全使用Javascript,那么Ajax将成为您的朋友,因为它可以让您提升GET,POST XMLHttpRequests。您还可以考虑使用JQuery进行未来开发而不是Javascript。例如,如果您想使用API​​,并对其中一个API函数发出POST请求,您可以执行以下操作:

req.open("POST", url, true);
req.setRequestHeader("Content-Type",
                 "application/x-www-form-urlencoded");
req.send(form-encoded request body);

其中url是在线api功能的链接。 或者,如果您有选项,则可以使用C#使用ASP.NET Web API开发RESTful服务,然后使用JavaScript / JQuery调用/使用它们

这是让你入门的东西:

http://rest.elkstein.org/2008/02/using-rest-in-javascript.html

http://blogs.msdn.com/b/brunoterkaly/archive/2011/11/17/how-to-consume-restful-services-using-jquery-and-or-javascript.aspx

- 附录

SkyDrive Rest API实质上告诉您SkyDrive API支持这些HTTP谓词集以及使用这些谓词的URI。现在您可以使用Javascript,C#,PHP等提出请求,但是您将始终必须使用REST API提供的相同URI来进行调用并获取/发布资源。这样做可确保每次使用REST API执行操作(GET,POST)时,无论您从何处调用(C#,Javscript,PHP),都将始终获得相同的结果。如果查看他们的代码示例,所有GET请求(C#,Javascript,Objective C)都使用相同的REST URI。 (http://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!114)。

所以从本质上讲,你会有类似的东西:

BaseURI http://apis.live.net/v5.0/(这将是任何类型的请求(如GET,POST)的BASE uri) 资源位置:folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!114

身份验证令牌:access_token = ACCESS_TOKEN

然后,如果使用C#,则必须创建HttpWebRequest,并将RequestType设置为GET(动词),并从上面给出的部分构建URI(BaseURI + ResourceLocation + AuthToken),并确保它匹配REST API中GET请求的格式,并执行请求。如果您使用的是JavaScript,则可以创建XMLHttp Request(AJAX),因为它们已经显示了示例。 REST API充当端点,它说:“如果你想用我来获取资源,这就是你必须调用的URI,你必须传递URI指定的所有信息”

请看一下在C#中使用SkyDrive REST API

Can't download complete image file from skydrive using REST API

您还可以使用MS INteractive SDK来了解JavaScript和REST实现之间的区别:

http://isdk.dev.live.com/ISDK.aspx