Как получить данные из таблицы с помощью REST API

Я хочу сделать API отдыха в php, используя Slim framework.

Я создал функцию для получения всех записей моей таблицы следующим образом:

<?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);
     }

});
?>

Теперь я хочу создать функцию, которая возвращает сведения о школе с идентификатором 5. поэтому, пожалуйста, предложите мне, как сделать функцию, чтобы я мог получить доступ к школьному задержанию, идентификатор которого указан в URL-адресе, подобном этому

192.168.1.126/schools/:5

person Pushpendra Kuntal    schedule 21.10.2011    source источник


Ответы (2)


Я разместил аналогичную информацию по вашему другому вопросу. Я настоятельно рекомендую использовать объектно-реляционное сопоставление для ваших БД. Это сделало мою жизнь супер легкой. Похоже, вы уже знаете SQL, поэтому вы сможете быстро его освоить. Документация солидная. Проверьте этот код, который делает то, что вы хотите. Идиорм/Париж

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, вы просто используете простые функции Paris, и вам не нужно беспокоиться о длинных строках запросов, подверженных ошибкам. :-)

person jmk2142    schedule 31.01.2012

Я решил свою проблему, используя некоторые учебники.

Это мое решение:

$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);
 }
});

Надеюсь, это поможет будущим читателям.

person Pushpendra Kuntal    schedule 21.10.2011