我想使用Slim框架在php中创建rest API。
我创建了一个函数来获取我的表的所有条目: -
<?php
header('Content-type: application/json');
// Include the Slim library
require 'Slim/Slim.php';
// Instantiate the Slim class
$app = new Slim();
// Create a GET-based route
$app->get('/', function () {
echo "Pericent is working on Campus Concierge...";
});
$app->get('/schools', function ()
{
$sql = "SELECT * from school";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
if (mysql_num_rows($result)==0)
{
echo '('.'['.json_encode(array('id' => 0)).']'.')';
}
else
{
while($row = mysql_fetch_assoc($result))
{
$records[] = $row;
}
echo json_encode($records);
}
});
?>
现在我想做一个返回id 5 的学校的细节的功能。所以请建议我如何制作一个功能,以便我可以访问学校拘留哪个id在这个URL中给出
192.168.1.126/schools/:5
答案 0 :(得分:0)
我通过使用一些教程解决了我的问题。
这是我的解决方案:
$app->get('/schools/:id', function ($id) {
// Retrieve game associated with an ID of $id
$sql = "SELECT * from school where schoolId='$id'";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
if (mysql_num_rows($result)==0)
{
echo '('.'['.json_encode(array('id' => 0)).']'.')';
}
else
{
while($row = mysql_fetch_assoc($result))
{
$records[] = $row;
}
echo json_encode($records);
}
});
我希望这会有助于未来的读者。
答案 1 :(得分:0)
我在您的其他question上发布了一些类似的信息。我强烈建议您使用对象关系映射来处理数据库内容。这让我的生活变得非常轻松。听起来你已经知道SQL了,所以你应该能够轻而易举地把它拿起来。文档很扎实。看看这个符合你想要的代码。 Idiorm/Paris
class School extends Model {}
$app->get('/school/:id', function($id) use ($app) {
$school = Model::factory('School')->find_one($id); // Paris: row with $id
$schoolAry = $school->as_array('id', 'name', 'zip', 'numStudents');
$response = $app->response(); // Slim Response object at work
$response['Content-Type'] = 'application/json';
echo json_encode($schoolAry); // Output
});
一旦你有了GET,POST,PUT,DELETE路由器,你就可以使用巴黎的简单功能了,你不必担心长期容易出错的查询字符串。 : - )