【发布时间】:2012-09-28 15:07:10
【问题描述】:
我必须为移动应用程序创建一个 REST API,但我真的不知道如何开始。 我阅读了一些关于 REST 的文章和教程,但没有找到用 PHP 编写的复杂 API 示例。
所以经过更多研究后,我选择使用微框架(而不是从头开始)。像 Symfony2 或 Zend 这样的完整框架提供了一些我不需要的方法,我认为它们太大了。 因为我已经使用过 Silex PHP,所以我选择了它。
但我一直在想一个问题:Silex 是创建(未来)大型 API 的好选择吗?
API 将不断发展,可能会越来越复杂(了解更多 URI 将来会可用,因为我们的目标是从 SOAP 迁移到 REST)。
由于 Silex PHP 使用单个文件约定,我有点害怕使用它(因为文件会越来越大,而且我认为性能会下降)。 此外,我还想在必要时缓存服务器结果(另外还有 HTTP 缓存),以减少对数据库 (MySQL) 的查询。
你怎么看,你有什么建议? :)
【问题讨论】:
-
我会选择 Symfony2,但您也可以将 MVC 添加到您的 Silex 堆栈中以获得更好的代码扩展。
-
我考虑过 Symfony2 和 ZF2,但在这种情况下我发现它们很复杂而且太大(而且我对这两个框架没有丰富的经验)。但我可能是错的:)
-
你看过柠檬水吗?它对于一个框架来说非常小,Tropo 建议将其与他们的 REST API 一起使用。
-
我不太相信柠檬水。好像很久没有更新了……而且它的架构比 Silex 更特别(即使两者有相似之处)。我在微框架中看到的主要问题涉及路由。应用程序将在运行正确之前解析所有路由。如果我有很多 URI(确实如此),执行时间将会增加。那么可扩展性呢?...我认为,就像@ChocoDeveloper 所说,Symfony2 更重要(我发现 ZF2 不太方便)。但是使用全栈框架需要更多时间(学习等)。
-
我不建议在 url 中包含次要 api 版本,因为每次发布新的次要更新都会破坏客户端。相反,最好只使用主要版本,如 [...]/v1/[...]
标签: php web-services rest architecture silex