【问题标题】:Create rest api in slim php在 slim php 中创建 rest api
【发布时间】:2014-11-12 22:22:36
【问题描述】:

我试图在 slim.php 中创建一个 rest api。我想要的实际上只是两个功能。一种用于从表中以 JSON 格式检索所有记录。一个用于通过 ID 检索记录。

到目前为止,我的 index/api 文件如下所示。现在我如何连接数据库?如何将其返回为 json?

<?php
require 'Slim/Slim.php';

\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();

$app->get(
    '/',
    function () {
        echo "hola!";
    }
);

$app->run();

【问题讨论】:

  • Slim 只是一个路由引擎,它不包含数据库抽象。所以你需要自己编写,使用内置函数(PDO、MySqli)或使用任何其他流行的 ORM。或者,使用稍微不那么“苗条”的框架,例如 fatfreephp(个人推荐)或 silex
  • 感谢您的意见!由于我正在构建小型rest api,因此我将主要将其用于路由。
  • 当我使用 slim 开发应用程序时,我总是使用 idiorm/paris

标签: php rest slim


【解决方案1】:

我已经成功了。我得到了结果,但不是纯 json。我在控制台中看不到它是儿子。即使是 tjo,它也会在浏览器中写出来。当前代码:

$app->get('/', function () {
    $db = connect_db();
    $result = $db->query( 'SELECT * FROM test;' );  
    while ( $row = $result->fetch_array(MYSQLI_ASSOC)){
        $data[] = $row;
    }
    echo json_encode($data);
});

【讨论】:

  • 没关系。添加$app-&gt;contentType('application/json'); 并让它工作。
【解决方案2】:

一个完整的路线看起来像:

api/resources // to get all records
api/resources/{id} // to get a specific record

如果您使用的是 MVC 架构,那么在您的控制器中,您将有两种方法,一种用于获取所有记录,另一种用于获取特定记录。我不确定 Slim 实现了哪个接口来连接数据库,但你可以 google 一下。

要将结果返回为 json,可以使用 PHP 的内置函数 json_encode

// $result = SQL query
return json_encode($result);

而且我认为您应该考虑对恢复的数据进行分页,因为以 json 格式返回大量数据并不是一个好习惯。

祝你好运。

【讨论】:

  • 谢谢。这帮助我开始了!
  • 随时@user2952238 ;)
猜你喜欢
  • 2015-08-06
  • 2012-07-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多