4

我有兴趣创建一个提供 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 的一个很好的模板,但它没有经过数据库身份验证。

任何帮助是极大的赞赏!

4

3 回答 3

0

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

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

Symfony2 的 REST API:正确的方法

于 2012-11-03T14:54:16.607 回答
0

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

于 2014-01-28T04:37:11.127 回答
0

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

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

于 2016-12-14T16:02:15.677 回答