What is a good and easy PHP
framework to create a RESTFUL API
WebService?
What I want to do, is to create API the performs CRUD operations on the table and aims to make a response as JSON
. Not only database operations, but also it may have extra logic to add in the code. Hope the question is more clear now.
1 回答
根据更新的问题编辑答案
我知道没有成熟的框架可以提供开箱即用的带有 JSON 响应的 RESTful API。实现这些细节很大程度上取决于您作为编码员。
老实说,我会选择一个有据可查的框架,比如 Codeigniter,然后从那里开始。您的 API 端点将是您在 /application/config/routes.php 中定义的任何内容,或者基于您的控制器命名约定。请记住,RESTful Web 服务的关键是它是无状态的。您的网址应类似于:
/products/381
/users/812
/tutorials/19
你不想要 /tutorials/updatetutorial/19 (那是不平静的)。
严格来说,您将希望您的控制器在某些 URL 上侦听 HTTP 请求方法。例如,假设给定产品的端点位于
http://somedomain.com/api/products/381
然后,您将需要使用 HTTP 请求方法来确定您对该端点执行的操作:
POST 到那个 URL 意味着你正在更新它/编辑它 GET 到那个 URL 意味着你只是请求它 DELETE 到那个 URL 意味着你想删除资源
不要执行 /products/381/delete 或 products/381/edit 之类的操作。这并不是严格意义上的 RESTful。您的 URL 不应包含动词。
所以你所做的只是简单地构建你的控制器方法来监听那些 HTTP 请求方法,并相应地从你的模型中调用 CRUD 操作。使用 JSON 响应非常简单:只需从数据库查询中获取任何对象或数组,然后echo json_encode($data)
就可以了。
请记住使用 phpheader()
函数来创建标头,以指示您的 API 的适当响应。您可能希望显式创建一个类,以使用正确的标题以 JSON 格式输出您的查询结果,这样您就不必重复很多次。
但是您还需要保护您的 API,这是另一个主题,超出了我在这里可以回答的范围。如果你搜索 StackOverflow 或 google,你会发现一大堆关于保护 API 的主题。做你的研究,这是一个相当大的课题。
好吧,我认为答案取决于您对 RESTful 的理解,以及您最终想要使用它的目的。它是一个API吗?它将成为什么样的网络服务?
简短的回答是,实际上并没有明确构建为 RESTful Web 服务的 PHP 框架。RESTful 完全取决于您选择如何实现它、构建您的数据库以及构建您的 URL。
就我个人而言,我喜欢使用 Codeigniter,并且我之前已经用它构建了一个 RESTful API 网络服务,但是我必须自己编写它的 API 部分——CI 没有明确内置任何东西。
我以前玩过 Epiphany 框架,它非常关注 API,但它做的事情有点奇怪,我没有深入了解它。
但归根结底,RESTful 实现真的取决于你作为编码员,以及你的最终目标是什么。因此,也许如果您使用更多详细信息更新您的帖子,我们可以更好地为您指明正确的方向。