Я новичок в программировании на PHP, но я разрабатываю приложение iOS, которому требуется небольшой веб-сервис. Я хотел бы сделать это RESTful, потому что я читал, что это путь.
Итак, может кто-нибудь объяснить мне, как я буду это делать?
Давайте У меня есть база данных с пользователями.
Я знаю, что с хорошим API REST, чтобы получить всех пользователей, мне нужно будет вызвать GET api/users, например.
Что я делаю Не понимаю, как это создать? Я создаю папку на моем сервере с именем api и один php-файл с именем users, который возвращает пользователей для меня? Или это php-файл с именем api, и я передаю пользователям как параметр?
Опять же, что, если я хочу получить определенного пользователя?
Я бы сделал GET api/users/23. Но я создаю новый php-файл для каждого пользователя и назову его идентификатором пользователя (23 в этом случае)? Или как мне вернуть пользователя 23 в API?
Может ли кто-нибудь прояснить это для меня?
В общем случае вы перенаправляете каждый отдельный запрос в ваш основной файл index.php (используя файл .htaccess), который затем будет вызывать «маршрутизатор».
Этот маршрутизатор увидит информацию о запросах (URL и глагол, GET, POST, ...) и вызовите соответствующую функцию, определенную для этого запроса.
Это означает, что вы можете использовать любую архитектуру, и не создавать ваши папки так же, как ваш маршрут.
Я бы рекомендовал использовать простую структуру, которая будет обрабатывать только маршрутизацию запросов, она должна дать вам все ключи, чтобы понять, как это сделать работает. Например:
http://altorouter.com/ https://lumen.laravel.com/ (больше, чем просто маршрутизатор, но все же простой)Простейшая версия маршрутизатор будет просто условиями, обрабатывающими различные случаи:
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
}
Также рассмотрим использование структуры API, потому что вы столкнетесь с проблемами, которые уже были решены создателями фреймворка. F.E. посмотрите здесь: http://www.gajotres.net/best-available-php-restful-micro-frameworks/
Вы можете ссылаться на это,
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));
?>