如何编写 JavaScript API?

13

我想创建一个API,以便其他网站可以访问我的Web应用程序的数据。

我找不到任何在线资源来解释创建自己的JavaScript API的过程。

我希望学习如何设置身份验证、数据传输等。

我该如何编写自己的JavaScript API?

是否有任何好的教程可以解释创建JavaScript API(例如GData API或YouTube API)的过程?

实际上,我将在两个不同的应用程序上执行此操作。一个是在带有Tomcat、MySQL和Java的Apache服务器上,另一个是在带有MySQL和PHP的Apache服务器上。前端全部使用JavaScript编写,通过它与后端交互。我已经开始编写他们将用于与我们的功能交互的库。


4
你是否已经拥有了用于JavaScript API接口的服务器端组件?还是打算直接检查你的HTML页面? - Matt
我目前还没有服务器端组件,但我可以添加。这取决于哪个更好或更容易。我两种方式都可以做,但我倾向于检查HTML页面。 - Mechlar
我发现它非常有用! - Agent Zebra
1个回答

8
这是一个非常普遍/广泛的问题,因此只会得到非常普遍/广泛的回答。如果不知道您正在使用哪些服务器端技术,当前的架构如何,完成的工作量与必须完成的工作量相比有多少(对于采取一种方法而不是另一种方法需要多少努力是相关的),则很难提出任何建议。
我个人不熟悉GData或YouTube API,因此它们的技术对我来说是未知的。然而,我可以提出以下个人建议:
1)建议您避免直接检查页面的HTML,而是建议使用服务器端API来补充客户端API。具体而言,我会考虑类RESTful的方法,其中您将您的实体/数据视为要执行操作的资源。
这种方法的好处是独立于您页面的实际视图/HTML表示形式,因此更加强健。如果您直接针对您的HTML编写API,则每次您改变页面时(即使内容/数据保持不变),都会存在破坏API的风险。
另一个拥有服务器端组件的好处是您可以利用JSONP,这可以减轻跨域请求所涉及的一些痛苦。然而,JSONP的一个缺点是您不能进行POST请求,只能进行GET请求,这与RESTful方法并不完全一致(但我仍然相信RESTful架构提供了许多好处)。
2) 数据传输是一个简单的建议 - 毫无疑问,我会选择JSON。在某些情况下,XML可能是比JSON更合适的数据格式,但总体而言,我认为您会发现JSON非常适合您的需求。
3) 对于跨域请求,客户端身份验证可能会很困难。这里的一个选项是使用iframe进行身份验证。另一个选项是使用HMAC或OAuth。
4) 至于实际编写JavaScript API,我建议阅读一些关于JavaScript书籍的SO线程。它们可能包括有关命名空间和其他有用的组织API主题的讨论。
正如我所说的那样 - 这些是非常通用的建议。也许您的用例只需要快速而肮脏的HTML抓取(尽管您可能需要使用IFrames来解决跨域限制)。总体而言,我上面提到的内容并不是一项轻松的任务,特别是如果现在没有这些元素中的任何一个。

谢谢,这基本上是我开始所需的所有信息。顺便说一下,我已经更新了我的问题,并列出了我正在运行的技术。 - Mechlar
这是一个非常棒的页面,适合任何想要实现oAuth的人,只需选择您的语言并实现库:http://oauth.net/code/。如果您只是想更好地了解oAuth:http://oauth.net/。 - Mechlar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接