6

背景:

我正在开发一个 Web 应用程序,我计划在不久的将来推出 iPhone 和 Android 版本,我对开发供不同前端使用的 API 有一些疑问。

我从这个开始:

我正在阅读这个 TutsPlus 教程,其中讨论了创建以 API 为中心的 Web 应用程序,这意味着您的所有浏览器调用和智能手机应用程序调用都通过 API 进行路由。

让我特别兴奋的是 Twitter 教程中的这句话:

最重要的架构变化之一是 Twitter.com 现在是我们自己的 API 的客户端。它从移动网站、我们的 iPhone、iPad、Android 应用程序以及每个第三方应用程序使用的相同端点获取数据。

上面的陈述反映了我理想中想要创造的东西。

然后我看到了这个:

我找到了这个 TutsPlus 教程,其中讨论了如何为 CodeIgniter 构建 REST API。这很好,因为我正在 CodeIgniter 中使用Modular Extensions 插件 - HMVC开发我的应用程序,我认为它非常适合我的目的。

唯一让我有些不知所措的是Phil Sturgeon似乎建议创建 API 的方式。他建议完成所有前端代码模块,然后为各自目录中的每个模块创建一个 API(不一定按此顺序)。如果我不希望它以 API 为中心,这会很好。

我想知道如何做到这一点:

我应该如何继续获得两个教程的融合:

  • 可以由浏览器应用程序以及单独的移动应用程序使用的以 API 为中心的应用程序
  • CodeIgniter 的 REST API(带有 HMVC 模块)

我是不是该:

  • 只需按照以 API 为中心的教程并尝试根据我的需要对其进行调整?
  • 遵循 CodeIgniter 特定的教程并使用 Phil Sturgeon 的建议来了解如何使用 HVMC 实现它?
  • 两者的结合?
  • 两者都不?
4

1 回答 1

3

看看尼克杰克逊的《吃你自己的狗粮》。这些是来自 CICONF 2012 的幻灯片,他详细介绍了这一切是如何工作的。

首先构建您的 API 是一个好主意,然后您的应用程序可以使用 API 来获取数据本身。当您在数据上添加 HTTP 请求时,这当然会慢一些,但在本地它还不错,如果您使用 HMVC 发出请求,它会更快。

在本教程中,我没有进入 HMVC,因为它是一个额外的主题,但是添加模块化 API 会很棒。在一些简单的应用程序中,我只是像教程建议的那样创建一个 /api 文件夹,但是 PyroCMS Professional 有一个 API 模块和一个允许模块化 API 东西的性感路线:

$route['api/([a-zA-Z0-9_-]+)/(:any)']       = '$1/api/$2';
$route['api/([a-zA-Z0-9_-]+)']              = '$1/api/index';

这意味着我可以在每个模块中都有一个“api.php”控制器,并且仍然使用 /api/controller/method 语法,甚至 /api/controller 如果你有function index_get().

我强烈建议您使用 PyroCMS Professional 来使用此功能。是的,您必须付费,但它可以立即处理用户密钥生成、授权、日志记录等,还可以处理您的网站。

于 2012-05-27T15:17:02.370 回答