Курс — «Программирование на PHP8 для начинающих» — #26 Основы веб-разработки с PHP. Основы REST API
Здравствуйте, дорогие друзья.
REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов, который позволяет взаимодействовать с клиентскими приложениями через HTTP-запросы. REST API предоставляет стандартизированный способ обмена данными между сервером и клиентом, что делает его популярным выбором для разработки веб-приложений. В этом разделе мы рассмотрим основные концепции создания REST API с использованием PHP.
Что такое REST API?
REST API — это набор правил и соглашений для создания веб-сервисов, которые используют HTTP-протокол для обмена данными. Основные принципы REST включают:
- Клиент-серверная архитектура: Клиент и сервер работают независимо друг от друга. Клиент отправляет запросы, а сервер обрабатывает их и возвращает ответы.
- Безсостояние (Stateless): Каждый запрос от клиента должен содержать всю необходимую информацию для обработки. Сервер не хранит состояние клиента между запросами.
- Кэширование: Ответы сервера могут быть кэшированы клиентом для уменьшения нагрузки на сервер и ускорения ответов.
- Единообразие интерфейса: REST API использует стандартные HTTP-методы (GET, POST, PUT, DELETE) для выполнения операций над ресурсами.
Создание простого REST API на PHP
Для создания REST API на PHP необходимо обрабатывать HTTP-запросы и возвращать ответы в формате JSON. Рассмотрим пример простого REST API для управления списком пользователей.
1. Получение списка пользователей (GET запрос)
1 2 3 4 5 6 7 8 9 10 |
<?php header('Content-Type: application/json'); $users = [ ['id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'], ['id' => 2, 'name' => 'Jane Smith', 'email' => 'jane@example.com'] ]; echo json_encode($users); ?> |
2. Получение данных одного пользователя (GET запрос с параметром)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php header('Content-Type: application/json'); $users = [ ['id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'], ['id' => 2, 'name' => 'Jane Smith', 'email' => 'jane@example.com'] ]; $userId = $_GET['id'] ?? null; if ($userId) { foreach ($users as $user) { if ($user['id'] == $userId) { echo json_encode($user); exit; } } http_response_code(404); echo json_encode(['message' => 'User not found']); } else { http_response_code(400); echo json_encode(['message' => 'User ID is required']); } ?> |
3. Создание нового пользователя (POST запрос)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php header('Content-Type: application/json'); $users = [ ['id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'], ['id' => 2, 'name' => 'Jane Smith', 'email' => 'jane@example.com'] ]; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $input = json_decode(file_get_contents('php://input'), true); $newUser = [ 'id' => count($users) + 1, 'name' => $input['name'], 'email' => $input['email'] ]; $users[] = $newUser; echo json_encode($newUser); } else { http_response_code(405); echo json_encode(['message' => 'Method not allowed']); } ?> |
4. Обновление данных пользователя (PUT запрос)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php header('Content-Type: application/json'); $users = [ ['id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'], ['id' => 2, 'name' => 'Jane Smith', 'email' => 'jane@example.com'] ]; if ($_SERVER['REQUEST_METHOD'] === 'PUT') { $input = json_decode(file_get_contents('php://input'), true); $userId = $input['id'] ?? null; if ($userId) { foreach ($users as &$user) { if ($user['id'] == $userId) { $user['name'] = $input['name'] ?? $user['name']; $user['email'] = $input['email'] ?? $user['email']; echo json_encode($user); exit; } } http_response_code(404); echo json_encode(['message' => 'User not found']); } else { http_response_code(400); echo json_encode(['message' => 'User ID is required']); } } else { http_response_code(405); echo json_encode(['message' => 'Method not allowed']); } ?> |
5. Удаление пользователя (DELETE запрос)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php header('Content-Type: application/json'); $users = [ ['id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'], ['id' => 2, 'name' => 'Jane Smith', 'email' => 'jane@example.com'] ]; if ($_SERVER['REQUEST_METHOD'] === 'DELETE') { $input = json_decode(file_get_contents('php://input'), true); $userId = $input['id'] ?? null; if ($userId) { foreach ($users as $key => $user) { if ($user['id'] == $userId) { unset($users[$key]); echo json_encode(['message' => 'User deleted']); exit; } } http_response_code(404); echo json_encode(['message' => 'User not found']); } else { http_response_code(400); echo json_encode(['message' => 'User ID is required']); } } else { http_response_code(405); echo json_encode(['message' => 'Method not allowed']); } ?> |
REST API предоставляет стандартизированный способ обмена данными между сервером и клиентом, что делает его популярным выбором для разработки веб-приложений. PHP позволяет легко создавать REST API, обрабатывая HTTP-запросы и возвращая ответы в формате JSON. В этом разделе мы рассмотрели основные концепции REST и создали простой пример API для управления списком пользователей. В следующих разделах мы рассмотрим более продвинутые темы, такие как отладка и тестирование кода, а также разработка практического проекта.
На этом все. Всем хорошего дня!
Цикл статей по курсу — «Программирование на PHP8 для начинающих».