javascript - 如何通过 REST 使用 Kinvey 执行 'Hello World'?

标签 javascript rest angularjs kinvey

我是 REST 新手,在理解如何使用它时遇到很多麻烦,特别是使用 BAAS Kinvey &Javascript。我花了很多时间试图学习如何使用 REST(顺便说一句,很难找到),我找到的最好的资源是这个 IBM paper .

Looking at the Kinvey websit e 我找到了这个“指南”,但它对我没有帮助。我认为这是因为它假设我有使用 REST 服务的经验。该指南提供了详细信息,但没有提供上下文。 ( Thisthis 有点帮助,但它只是片段)。

同样,这里有各种关于 SO 的问题( hereherehereherehere ),但它们要么非常具体,要么非常笼统。

我喜欢看到的是:

  • 要创建什么样的 [javascript] 对象(例如 XMLHttpRequest?)
  • 如何构建 url 请求(构建查询)。
  • 请求的各个部分如何与我的目标应用程序(后端)相关。
  • 我的凭据如何/在哪里/是否适合。
  • 如何处理响应。

  • 同样,Kinvey 网站上的指南对我的假设太多了,我不知道 Handshakes 或 Endpoints(当然我用谷歌搜索它们,但如果没有上下文,很难与 Kinvey 的工作方式建立联系)。

    Kinvey 的“试试这个”部分也令人困惑。它在做什么以及为什么在我更改应用程序时它会中断,以及它为什么/如何连接到我的帐户?同样,它显示的是片段而不是一个完整的例子。

    我假设会有一个简单的 15-20 行要点显示一个活生生的例子 - 或者至少是一个明确解释在哪里放置细节的例子。

    一旦我看到一个工作示例,我就可以弄清楚,我只需要那个完整的示例来展示它的端到端。

    旁注:我正在使用 Angularjs;但是,我想知道如何在 JS 中手动执行此操作,然后我会回去学习 Angular 如何对其进行抽象。如果您碰巧也知道 Angular,请也添加该示例。

    谢谢各位。

    最佳答案

    我会尽力一一解答。我不能在没有更多代表的情况下发布两个以上的链接,所以只需在我的链接之前删除“s”即可使用它们。

    对于通过 javascript 的 http 请求,重要的是您了解 CORS

    CORS tutorial

    AJAX ,

    退房也很有用

    XmlHttpRequest

    阅读specification休息可能是了解 REST 是什么和能够做什么的细节的最好方法之一。寻找在编程中使用 REST 的教程很大程度上取决于语言。

    1:要创建什么样的 javascript 对象(例如 XMLHttpRequest?)

    这取决于您的浏览器及其版本。

    有:

    XMLHttpRequests 在 IE7+、Firefox、chrome、safari(这些浏览器的最新版本支持 CORS 检查 here 以查看哪些。

    XDomainRequests:在 IE 8 和 IE 9 中找到(支持 CORS)

    activeXObject:在 IE 6,7,8,9,10 中找到(不支持 CORS)

    您可以使用微软的 msdn api 引用了解有关 IE 特定对象的更多信息。通常一个快速的谷歌会对这些对象有很好的结果。

    2:如何构造一个url请求(构建一个查询)

    假设这是用于 javascript 构建请求取决于您将其发送到的服务器。我已经将您链接到几个链接,这些链接可以帮助您构建 http 请求并发送它。如果您想查看现在正在实践的实际实现,您可以查看:

    apigee 中的请求函数 usergrid.js
    在第 67 行(在我发布此内容时),

    如果您想了解如何构建查询字符串(URI 后的 '?'),请检查该链接中的 encodeParams 函数。请注意,有很多方法可以做到这一点。这只是其中之一。您可以轻松地将“param=value” on by on 附加到“uri” + '?'

    需要注意的是,Apigee 示例不是跨浏览器兼容的。它只是假设 XMLHttpRequest 版本 2 并非所有版本的浏览器都支持。

    3:请求的各个部分如何与我所针对的应用程序(后端)相关。

    如果您的目标是 kinvey,那么您提供的 RESTful api 链接确实是解释它的最佳方式。它详细说明了您尝试执行的操作的 url 和 http 请求 header 应该是什么样子。 Kinvey 的其他指南有更具体的 http 请求示例。
    进入 URL 的组件在很大程度上取决于后端。如果您有更具体的问题,我可以尝试回答。

    4:我的凭据如何/在哪里/是否适合

    这再次取决于后端/服务器。对于 Kinvey,他们使用 Basic Auth 和 OAuth。
    您应该查看他们的安全指南以获取更多信息。

    如果您研究/研究了我发布的初始链接并了解了 http 请求,那么您的凭据将位于 httpRequest 的 Authorization header 下。对于 kinvey,它通常是这样的:

    授权:“基本”+ Base64encoding[appId:appSecret] 或“Kinvey”+ [authToken]

    5:如何处理响应。

    再次取决于后端/服务器。
    AJAX 和 CORS 教程上的上述链接向您展示了如何处理响应。

    您可以获得许多不同的响应,xml、json、简单文本等。您想要的类型通常由您在请求 header 的接受字段中指定,或者由服务器的响应 header 的内容类型指定,它告诉您它返回的类型或可以发回,但这需要调用服务器一次以查看它默认发送的内容。许多 mBaaS 通常在其文档中指定响应

    对于 kinvey,他们通常会发回 JSON,因此您只需使用 JSON.parse() 响应并从 JSON 对象访问您需要的数据。

    希望这能回答您的部分或全部问题,如果有人认为我做错了什么或说了一些非常不准确的话,请告诉我。这是我第一次在堆栈溢出上发帖,但我在工作中使用了 kinvey 以及许多其他 mBaaS。所以我对他们有了一些了解。

    最后,如果您了解了您想要学习的内容,只需使用 Kinvey 的 javascript api,它将为您处理与 REST 的所有交互。除非您需要做一些 JS 框架不提供的更具体的事情,否则无需重新发明轮子。

    关于javascript - 如何通过 REST 使用 Kinvey 执行 'Hello World'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238637/

    相关文章:

    javascript - 在 Blender 导入的网格中获取颜色以使用 Three.js 显示的问题

    java - Java REST API 中的自定义身份验证

    angularjs - ADAL JS Angular-WebAPI 向 token 添加新的角色声明

    javascript - 时区被添加到 mysql DB 的时间中

    javascript - 如果我将 async/await 与不返回任何内容的函数一起使用会发生什么?

    javascript - 如果仅在 javascript 中小于第 5 点,如何对数字进行四舍五入

    java - DDD : naming convention for Representation Layer and Domain Layer classes

    javascript - 如果我使用 moment-with-locales ,我需要 momentJS 吗?

    javascript - 在 Angular2 应用程序中使用字符串插值从数组中提取值

    c# - 在 Web API 中传递枚举参数的最佳实践