2011-05-23 31 views
11

我期待创建一个API,以便其他站点可以访问我的Web应用程序中的数据。如何编写JavaScript API?

我一直没能找到解释创建自己的JavaScript API的过程的任何资源。

我想学习如何设置身份验证,数据传输等

我怎样写我自己的JavaScript API?

是否有很好的教程来解释创建JavaScript API的过程,比如GData API或YouTube API?

我真的会在2个不同的应用程序上做到这一点。一个是使用Tomcat,MySQL和Java的apache服务器。另一个是使用MySQL和PHP的Apache。前端全部用JavaScript编写,通过它与后端进行交互。我已经开始编写他们将用来与我们的函数进行交互的库。

+4

您是否已经拥有JavaScript API将通过其接口的服务器端组件?还是你打算直接检查你的HTML页面? – Matt 2011-05-23 16:19:57

+0

我还没有服务器端组件,但我可以。取决于哪个更好或更容易。我也可以做,但我倾向于检查HTML页面。 – UpHelix 2011-05-23 16:46:40

+0

好吧,该死的我觉得它很有用! – 2016-01-31 05:52:10

回答

7

这是一个非常普遍的/广泛的问题,因此只会得到非常普遍的/广泛的回答。如果不知道您正在使用哪种服务器端技术,您目前的架构如何,需要完成多少工作以及需要完成多少工作,则很难提出任何建议(与需要采取一种方法需要多少努力有关另一个)等。

我个人不熟悉GData或YouTube API,所以他们的技术对我来说是未知的。但是,我可以提出以下个人建议:

1)我建议您避免直接对您的页面进行HTML检查,而是建议使用服务器端API来补充您的客户端API。具体而言,我会考虑一个RESTful like approach,您将您的实体/数据视为您希望采取行动的资源。

此方法的好处是独立于您页面的实际视图/ HTML表示,因此对更改具有更强的适应性。如果您直接针对HTML编写API,则每当您更改网页时(即使内容/数据保持不变),您都有可能违反API。

拥有服务器端组件的另一个好处是您将能够利用JSONP,这可以减轻跨域请求所涉及的一些痛苦。然而,JSONP的一个缺点是你不能发出POST请求,只有GET请求,它并不完全采用RESTful方法(但我仍然相信RESTful架构提供了许多优点)。

2)数据传输是一个简单的建议 - 下手我会选择JSON。在某些情况下,XML可能比JSON更适合使用数据格式,但总的来说,我认为您会发现JSON将很好地满足您的需求。

3)对于跨域请求,客户端认证可能很困难。这里的一个选择是使用iframe来进行身份验证。另一种选择是使用HMAC或OAuth。 4)至于实际编写JavaScript API,我建议阅读关于JavaScript books的SO上的一些线程。这可能包括关于命名空间和其他组织API的讨论。

正如我所说 - 这些都是非常通用的建议。可能是你的用例在一个快速而脏的HTML抓取中可以做得很好(尽管你可能需要使用IFrame来解决跨域限制)。我上面提到的整体来看,并不是一项微不足道的任务,特别是如果现在这些要素都不存在的话。

+0

谢谢,这几乎是我需要开始的所有信息。我用我运行的技术更新了我的问题,仅供参考。 – UpHelix 2011-05-23 21:21:54

+0

这是一个很棒的页面,任何想要实现oAuth的人都可以选择你的语言并实现这个库:http://oauth.net/code/。如果你只是想更好地理解oAuth:http://oauth.net/ – UpHelix 2011-05-27 19:50:05