如何创建以API为中心的应用程序(更具体地说:对于CodeIgniter中的HMVC)

Ser*_*e85 6 php rest codeigniter

背景:

我正在开发一个Web应用程序,我打算在不久的将来推出iPhone和Android版本,我有一些关于开发API以供不同前端使用的问题.

我开始这个:

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

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

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

以上陈述反映了我理想的创作方式.

然后我看到了这个:

我找到了这个TutsPlus教程,它讲述了如何为CodeIgniter构建REST API.这很好,因为我正在使用Modular Extensions插件--HMVC在CodeIgniter中开发我的应用程序,我认为这对我的目的来说是完美的.

唯一的一点,那我有点失去了,就是这样,菲尔鲟鱼似乎暗示创建API.他建议完成所有前端代码模块,然后为各自目录中的每个模块创建一个API(不一定按此顺序).如果我不希望它以API为中心,那就没问题了.

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

我应该如何继续混合使用这两个教程:

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

我是不是该:

  • 只需按照以API为中心的教程,尝试根据我的需求进行定制?
  • 按照CodeIgniter特定的教程,使用Phil Sturgeon的建议来了解如何使用HVMC实现它?
  • 两者结合?
  • 都不是?

Phi*_*eon 3

看看Nick Jackson 的《Eating your own Dogfood》 。这些是 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';
Run Code Online (Sandbox Code Playgroud)

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

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