2016-10-18 4 views
2

Я новичок в программировании на PHP, но я разрабатываю приложение iOS, которое нуждается в небольшом веб-сервисе. Я хотел бы сделать это RESTful, потому что я читал, что это путь.Как написать простой RESTful PHP API

Итак, может кто-нибудь объяснить мне, как я буду заниматься этим?

Предположим, у меня есть база данных с пользователями.

Я знаю, что с хорошим API REST, чтобы получить всех пользователей, мне нужно позвонить, например, GET api/users.

Я не понимаю, как это создать? Я создаю папку на моем сервере с именем api и один php-файл с именем users, который возвращает пользователей для меня? Или это php-файл с именем api, и я передаю пользователям параметр?

Опять же, что, если я хочу получить конкретного пользователя?

сделаю GET api/users/23. Но я создаю новый php-файл для каждого пользователя и назову его идентификатором пользователя (23 в этом случае)? Или как мне вернуть пользователь 23 в API?

Может кто-нибудь прояснить их для меня?

ответ

1

Вы можете сослаться на это,

API/user.php

<?php 
include("connection.php"); //Connect to database 
$response = array(); 
if(isSet($_POST['token'])) 
{ 
    $select = mysqli_query($conn,"SELECT * FROM `users`"); //Fetch all the user records 
    if($select != false) 
    { 
     if($select != false && mysqli_num_rows($select) > 0) 
     { 
      while($rows = mysqli_fetch_array($select)) 
      { 
       $response['status'] = true; 
       $response['data'] = print_r($rows,true); 
      } 
     } 
     else 
     { 
      $response["status"] = false; 
     } 
    } 
    else 
    { 
     $response["status"] = false; 
    } 
} 
else 
{ 
    $response["status"] = false; //Unauthorized Access 
} 

echo json_encode($response); 
mysqli_close($conn); 

?> 

API/connection.php

<?php 
    $conn = mysqli_connect("HostName","UserName","password","DBName") or die("Some error occurred during connection " . mysqli_error($con)); 
?> 
1

рассмотреть также использовать рамки API, потому что вы встретите проблемы, которые уже решены создателями фреймворка. F.E. смотрите здесь: http://www.gajotres.net/best-available-php-restful-micro-frameworks/

+1

Спасибо, но я хотел бы сначала понять, как работает REST –

0

В общем, вы будете перенаправлены каждый запрос на ваш главный файл index.php (используя .htaccess файл), который затем называют «маршрутизатор».

Этот маршрутизатор увидит информацию о запросах (URL и глагол, GET, POST, ...) и вызовет соответствующую функцию, определенную для этого запроса.

Это означает, что вы можете использовать любую архитектуру и не создавать свои папки так же, как ваш маршрут.

Я бы рекомендовал использовать простую структуру, которая будет обрабатывать только маршрутизацию запросов, она должна дать вам все ключи, чтобы понять, как это работает. Например:

Простейший вариант маршрутизатора будет только условия обработки различных случаев:

if ($_SERVER['REQUEST_METHOD'] == "GET" && $_SERVER[REQUEST_URI] == "/users") // request is GET /users 
{ 
    // return the list of all users 
} 
if ($_SERVER['REQUEST_METHOD'] == "GET" && preg_match('#/users/[0-9]+#', $_SERVER[REQUEST_URI])) // request is GET /users/[0-9]+ 
{ 
    // return a specific user 
} 
Смежные вопросы