我希望创建一个API,以便其他网站可以从我的web应用程序访问数据。
我在网上找不到任何资源来解释创建您自己的javascript API的过程。
我想学习如何设置身份验证、数据传输等
如何编写自己的JavaScript API?
有没有什么好的教程可以解释创建像GData API或YouTube API这样的JavaScript API的过程?
我将在两个不同的应用程序上执行此操作。一个是在具有Tomcat、MySQL和Java的apache服务器上。另一个是使用MySQL和PHP的apache。前端都是用javascript编写的,通过javascript与后端进行接口。我已经开始编写他们将用来与我们的函数交互的库。
这是一个非常通用/宽泛的问题,因此只会得到非常通用/广泛的回答。在不知道你正在使用什么服务器端技术、你目前的架构、完成了多少工作与必须完成多少工作(与采取一种方法比另一种方法需要付出多少努力有关)等的情况下,很难提出任何建议。
我个人并不熟悉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,我建议阅读SO上关于JavaScript书籍的一些线程。可能会包括关于名称空间和其他对组织API有用的主题的讨论。
正如我所说,这些都是非常笼统的建议。您的用例可能只需要快速而肮脏的HTML抓取就可以了(尽管您可能需要使用IFrame来绕过跨域限制)。我上面提到的,作为一个整体,并不是一项微不足道的任务,特别是如果这些元素现在都不到位的话。