创建PHP
WebService的简单RESTFUL API
框架是什么?
我想要做的是创建API,在表上执行CRUD操作,并旨在作为JSON
的响应。不仅数据库操作,而且它可能有额外的逻辑添加到代码中。希望现在问题更清楚了。
答案 0 :(得分: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意味着您正在更新/编辑它 获取该URL意味着您只是在请求它 删除该URL意味着您要删除资源
不要做/ products / 381 / delete或products / 381 / edit之类的事情。这不是严格的RESTful。您的网址绝不应包含动词。
因此,您只需构建控制器方法以侦听这些HTTP请求方法,并相应地从模型中调用CRUD操作。要使用JSON进行响应,这很简单:只需从数据库查询中获取任何对象或数组,然后echo json_encode($data)
。
请记住使用php header()
函数创建标题,指明API的相应响应。您可能希望显式创建一个类,以便使用正确的标题以JSON格式输出查询结果,这样您就不必重复自己。
但是你也想要保护你的API,这是一个完全不同于我在这里可以回答的范围的话题。如果你搜索StackOverflow或谷歌,你会发现一大堆关于保护API的主题。做你的研究,这是一个很大的主题。
我认为答案取决于您对RESTful的理解,以及您最终想要使用它的内容。它是否意味着成为一个API?它将成为什么样的网络服务?
简短的回答是,没有真正构建的PHP框架是RESTful Web服务。 RESTful就在于您如何选择实现它,构建数据库以及构建URL。
我个人喜欢使用Codeigniter,之前我已经用它构建了一个RESTful API webservice,但是我必须自己编写它的API部分 - CI没有明确内置的任何内容。
之前我曾经使用过Epiphany框架,这非常注重API,但它做的事情有点奇怪,我没有深入探究它。
但最终,一个RESTful实现真的取决于你作为编码器,以及你的最终目标是什么。因此,如果您使用更多详细信息更新帖子,我们可以更好地指出您正确的方向。