12 subscribers
182 photos
3 videos
212 links
Programmer - Курсы программирования. Канал для тех, кто не хочет остаться на задворках цивилизации.
Download Telegram
📘 Полное руководство по PHP – Глава 10: Создание и использование RESTful API 🐘

В этой главе мы рассмотрим, как создавать и использовать RESTful API на PHP. API (Application Programming Interface) позволяет приложениям взаимодействовать друг с другом. Мы изучим основы REST, создадим простое API и научимся его использовать.

---

### 1. Что такое RESTful API?
REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов. RESTful API использует HTTP-методы (GET, POST, PUT, DELETE) для выполнения операций с ресурсами.

---

### 2. Создание простого RESTful API
#### Шаг 1: Настройка маршрутов
Создайте файл index.php и настройте маршруты:
<?php
header("Content-Type: application/json");

$request_method = $_SERVER['REQUEST_METHOD'];
$request_uri = $_SERVER['REQUEST_URI'];

switch ($request_method) {
case 'GET':
if ($request_uri == '/users') {
getUsers();
} elseif (preg_match('/\/users\/(\d+)/', $request_uri, $matches)) {
getUser($matches[1]);
}
break;
case 'POST':
if ($request_uri == '/users') {
createUser();
}
break;
default:
http_response_code(405);
echo json_encode(["message" => "Метод не поддерживается"]);
}
?>


#### Шаг 2: Функции для обработки запросов
<?php
function getUsers() {
$users = [
["id" => 1, "name" => "Иван"],
["id" => 2, "name" => "Мария"]
];
echo json_encode($users);
}

function getUser($id) {
$users = [
1 => ["id" => 1, "name" => "Иван"],
2 => ["id" => 2, "name" => "Мария"]
];
if (isset($users[$id])) {
echo json_encode($users[$id]);
} else {
http_response_code(404);
echo json_encode(["message" => "Пользователь не найден"]);
}
}

function createUser() {
$data = json_decode(file_get_contents("php://input"), true);
if (isset($data['name'])) {
echo json_encode(["message" => "Пользователь создан", "name" => $data['name']]);
} else {
http_response_code(400);
echo json_encode(["message" => "Неверные данные"]);
}
}
?>


---

### 3. Использование API
#### GET-запрос (получение списка пользователей)
curl -X GET http://localhost/users

Ответ:
[
{"id": 1, "name": "Иван"},
{"id": 2, "name": "Мария"}
]


#### GET-запрос (получение одного пользователя)
curl -X GET http://localhost/users/1

Ответ:
{"id": 1, "name": "Иван"}


#### POST-запрос (создание пользователя)
curl -X POST -H "Content-Type: application/json" -d '{"name": "Алексей"}' http://localhost/users

Ответ:
{"message": "Пользователь создан", "name": "Алексей"}


---

### 4. Обработка ошибок
- 404 Not Found: Ресурс не найден.
- 400 Bad Request: Неверные данные.
- 405 Method Not Allowed: Метод не поддерживается.

Пример:
<?php
http_response_code(404);
echo json_encode(["message" => "Ресурс не найден"]);
?>


---

### 5. Работа с JSON
PHP предоставляет функции для работы с JSON:
- json_encode(): Преобразует массив в JSON.
- json_decode(): Преобразует JSON в массив.

Пример:
<?php
$data = ["name" => "Иван", "age" => 25];
$json = json_encode($data);
echo $json; // {"name":"Иван","age":25}

$array = json_decode($json, true);
print_r($array); // Array ( [name] => Иван [age] => 25 )
?>


---

### 6. Авторизация и токены
Для защиты API часто используются токены (например, JWT).

#### Пример с JWT
1. Установите библиотеку для работы с JWT:

   composer require firebase/php-jwt

2. Создайте токен:

   <?php
use Firebase\JWT\JWT;

$key = "your_secret_key";
$payload = [
"user_id" => 1,
"username" => "Иван"
];
$jwt = JWT::encode($payload, $key);
echo $jwt;
?>

3. Проверка токена:

   <?php
try {
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);
} catch (Exception $e) {
http_response_code(401);
echo json_encode(["message" => "Ошибка авторизации"]);
}
?>




🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер.

#PHP #API #RESTful #Программирование #Телеграм
🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #API #RESTful #Программирование #Телеграм
🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #API #RESTful #Программирование #Телеграм
🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #API #RESTful #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #API #RESTful #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #API #RESTful #Программирование #Телеграм

Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)