创建REST API客户端&服务器

时间:2012-11-03 14:41:13

标签: php javascript api rest

我有兴趣创建一个提供API服务的应用程序。与Facebook类似,最终开发人员可以注册应用程序并接收个性化数据,以便通过第三方应用程序访问提供的API。我想提供一个PHP和JavaScript SDK,它允许开发人员通过安全方法(私有 - 公共密钥)访问API。

我认为我或多或少地掌握了如何处理这个问题的整体理解:

  • 处理请求的内置REST服务器
  • 内置API服务器,充当请求和REST服务器之间的屏障(验证密钥,权限等)
  • 内置JavaScript库,与Facebook的“all.js”等效,与页面异步,可以动态执行API调用,并对API服务器进行验证。

此外,我希望在内部使用API​​,即通过网站上的内部JavaScript文件发出PUT / GET / POST / etc请求。

我希望使用CodeIgniter作为启动应用程序的基础,所以如果对库的任何建议,接近这个的技术和方法都会很棒。

具体来说,提及:

  • 关于应用程序,范围请求,基于角色的权限,会话,日志等的SQL表结构。
  • 如何创建与Facebook的“all.js”相同的理想JavaScript库的模板/模板
  • 可以进行公钥 - 私钥授权的图书馆

会非常有帮助。我似乎找不到任何东西。

我知道以下内容:

https://github.com/philsturgeon/codeigniter-restserver

然而,它是用于开发API的良好模板,未经数据库验证。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

Drupal8正在Symfony2之上构建,以帮助构建框架的RESTful组件。

所以我肯定会看看那个框架。

REST APIs with Symfony2: The Right Way

答案 1 :(得分:0)

最好的方法是使用您的框架创建常规的WEB应用程序 - 就像管理面板一样,具有最大的灵活性,而无需实现任何额外的REST调用。然后为您的应用创建REST API作为模块(或插件),只需要必要的API调用。 如果您将REST API用于客户端和内部用途,有一天您会发现自己被锁定在自己的API中。

答案 2 :(得分:0)

通常不需要两级API,出于体系结构和安全原因,您可以将代码分离为外观和核心逻辑。 至于客户端,我建议基于一些自动生成API描述符自动生成客户端,这将使您能够通过单击更新客户端库。 在Kaltura中,我们为使用服务器代码反射生成的所有API服务器生成XML描述符,请参阅示例:http://www.kaltura.com/api_v3/api_schema.php 从该描述符开始,我们使用不同的编码语言自动生成许多不同的客户端库,请参阅generator:https://github.com/kaltura/clients-generator,您可以按原样使用它。

有关更多REST API服务器指南,请参阅我的博客:http://restafar.com/create-new-rest-server/