php - 如何创建以 API 为中心的应用程序(更具体地说是 : for HMVC in CodeIgniter)

标签 php codeigniter rest

背景:

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

我从这个开始:

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

特别让我兴奋的是 Twitter 教程中的以下声明:

One of the most important architectural changes is that Twitter.com is now a client of our own API. It fetches data from the same endpoints that the mobile site, our apps for iPhone, iPad, Android, and every third-party application use.

上述陈述反射(reflect)了我理想中想要创造的东西。

然后我看到了这个:

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

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

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

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

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

我应该:

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

最佳答案

看看Eating your own Dogfood由尼克 jackson 。这些是来自 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” Controller ,并且仍然使用/api/controller/method 语法,如果您有 function index_get(),甚至可以使用/api/controller。

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

关于php - 如何创建以 API 为中心的应用程序(更具体地说是 : for HMVC in CodeIgniter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10758100/

相关文章:

php - 一天中特定时间的警报声

PHP 微时间()

css - codeigniter Controller 和 controller/之间有什么区别?

javascript - Ember-Data 并将数据拉入存储

java - 如何上传带有 Google Drive REST API v2 链接的文件

javascript - 我的表单提交和 jquery 问题

php - dompdf 中不显示背景图片

php - 将数据从 View 传递到 Controller (codeigniter)

php - 在 codeigniter 中搜索查询

PHP Rest Api多个参数如何使用curl发送