5.90M
Категория: ИнтернетИнтернет

10 Презентация_Создание REST API на PHP

1.

Казахский университет технологии и бизнеса им. К. Кулажанова
Факультет “Инжиниринг и информационные технологии”
Кафедра “Информационные технологии”
Наименование курса:
«Проектирование и разработка
Web - приложений»
Турсынбай Нургуль Файзуллаевна
Сеньор- лектор
e-mail: Nurgul.tursynbay@mail.ru
Астана 2025

2.

Казахский университет технологии и бизнеса им. К. Кулажанова
Создание REST API на PHP
Добро пожаловать на лекцию, посвященную созданию REST API на языке PHP! В
современной веб-разработке умение создавать и использовать API становится ключевым
навыком, позволяющим строить гибкие и масштабируемые приложения.
На этой лекций мы рассмотрим принципы архитектуры REST, методы HTTP для
взаимодействия с ресурсами, структуру API и формат JSON для обмена данными. Также
мы изучим, как клиентские приложения могут взаимодействовать с нашим API с
использованием Fetch.

3.

Казахский университет технологии и бизнеса им. К. Кулажанова
Понятие API и архитектурный стиль
REST
API (интерфейс программирования приложений) представляет собой набор правил и
протоколов, позволяющих различным программным компонентам взаимодействовать друг
с другом. В контексте веб-разработки API позволяет клиентским приложениям общаться с
серверной частью.
REST (Representational State Transfer) — это архитектурный стиль, основанный на стандартах
протокола HTTP и позволяющий создавать масштабируемые веб-сервисы. REST-архитектура
предполагает, что каждый ресурс доступен по уникальному URI, а взаимодействие
происходит через стандартные HTTP-методы.
Принципы REST
Унифицированный интерфейс — стандартные методы HTTP для всех взаимодействий
Отсутствие состояния
Каждый запрос содержит всю необходимую информацию, сервер не хранит состояние
клиента
Клиент-сервер
Четкое разделение пользовательского интерфейса и логики хранения/обработки
данных

4.

Казахский университет технологии и бизнеса им. К. Кулажанова
HTTP-методы в REST API
В основе REST API лежит использование стандартных методов протокола HTTP для выполнения операций с ресурсами. Каждый
метод имеет свое специфическое назначение и соответствует определенной операции в модели CRUD (Create, Read, Update,
Delete).
GET
POST
Используется для получения данных о ресурсе без
Применяется для создания нового ресурса. Данные
изменения его состояния. Например, получение списка
обычно передаются в теле запроса в формате JSON.
пользователей или информации о конкретном товаре.
Пример: регистрация нового пользователя.
Эквивалент операции "Read" в CRUD.
Соответствует операции "Create" в CRUD.
PUT
DELETE
Предназначен для полного обновления
Используется для удаления указанного ресурса.
существующего ресурса. Заменяет все текущие данные
Пример: удаление учетной записи пользователя.
ресурса на новые. Пример: обновление профиля
Соответствует операции "Delete" в CRUD-модели.
пользователя. Эквивалент операции "Update" в CRUD.

5.

Структура REST API
Правильная структура API является важным аспектом проектирования. Хорошо спроектированный API понятен для
разработчиков и легко расширяем. В REST каждый ресурс идентифицируется через уникальный URI (Uniform Resource Identifier).
Примеры URI для ресурсов
Принципы организации URL
/api/users — список всех пользователей
Используйте существительные, а не глаголы для ресурсов
/api/users/42 — пользователь с ID 42
/api/users/42/orders — заказы пользователя с ID 42
Применяйте множественное число для коллекций
/api/products?category=electronics — товары в категории
Соблюдайте иерархию ресурсов
электроника
Используйте query-параметры для фильтрации и
сортировки
Хорошая практика — включать версию API в URI (например, /api/v1/users), что позволяет вносить изменения без нарушения
работы существующих клиентов. Также следует предусмотреть возможность пагинации для больших наборов данных.

6.

Казахский университет технологии и бизнеса им. К. Кулажанова
Формат передачи данных: JSON
JSON (JavaScript Object Notation) стал стандартом де-факто для обмена данными в веб-приложениях благодаря своей простоте и универсальности. Этот текстовый
формат легко читается как человеком, так и машиной, что делает его идеальным для REST API.
{
"id": 42,
"orders": [
"name": "Иван Петров",
"email": "ivan@example.com",
{
"date": "2023-05-15",
"id": 1001,
"total": 5600
},
"total": 3200
}
{
],
"id": 1002,
"active": true}
"date": "2023-06-20",
Преимущества JSON
Легкий синтаксис и читаемость
Поддержка вложенных структур данных
Нативная поддержка в JavaScript
Встроенные функции работы с JSON во всех современных языках
программирования
Меньший объем данных по сравнению с XML
Удобство использования в мобильных приложениях
В PHP для работы с JSON используются функции json_encode() и json_decode(), которые позволяют легко преобразовывать PHP-массивы и объекты в JSON-строки и
обратно.

7.

Создание REST API на PHP
При разработке REST API на PHP необходимо правильно обрабатывать HTTP-запросы, маршрутизировать их к соответствующим
обработчикам и формировать JSON-ответы. Рассмотрим базовую структуру API-контроллера.
В реальных проектах рекомендуется использовать фреймворки (Laravel, Symfony, Slim), которые предоставляют удобные
инструменты для создания API с маршрутизацией, валидацией и документированием.

8.

Казахский университет технологии и бизнеса им. К. Кулажанова
Обработка ошибок и HTTP-статусы
Корректная обработка ошибок и возврат соответствующих HTTP-статусов — важная часть любого API. Это помогает клиентам
понять, что пошло не так, и предпринять соответствующие действия.
Успешные статусы (2xx)
Ошибки клиента (4xx)
Ошибки сервера (5xx)
200 OK — стандартный
успешный ответ
201 Created — ресурс успешно
формат запроса
создан
204 No Content — успешный
400 Bad Request — неверный
401 Unauthorized — требуется
аутентификация
запрос без тела ответа
500 Internal Server Error —
внутренняя ошибка сервера
503 Service Unavailable — сервис
временно недоступен
403 Forbidden — доступ
запрещен
404 Not Found — ресурс не
найден
422 Unprocessable Entity —
ошибка валидации
В PHP статус можно установить с помощью функции http_response_code(). Также рекомендуется включать в JSON-ответ
информацию об ошибке: код, сообщение и, возможно, дополнительные данные для отладки.

9.

Казахский университет технологии и бизнеса им. К. Кулажанова
Взаимодействие с API через Fetch
Fetch API — это современный JavaScript-интерфейс для выполнения HTTP-запросов, который заменил устаревший XMLHttpRequest. Он позволяет клиентским приложениям взаимодействовать с вашим REST API.
// Получение списка пользователейfetch('https://api.example.com/users')
response.json();
})
.then(data => {
пользователяfetch('https://api.example.com/users', {
password: 'securepassword'
})})
.then(response => {
console.log('Пользователи:', data);
method: 'POST',
.then(response => response.json())
if (!response.ok) {
// Обработка полученных данных
headers: {
})
throw new Error(`HTTP error! Status: ${response.status}`);
}
return
.catch(error => console.error('Ошибка:', error));// Создание нового
'Content-Type': 'application/json'
},
body: JSON.stringify({
.then(data => console.log('Создан пользователь:', data))
name: 'Иван Петров',
email: 'ivan@example.com',
.catch(error => console.error('Ошибка:', error));
Fetch возвращает Promise, что позволяет использовать цепочки then/catch или современный синтаксис async/await для более читаемого кода. Также важно обрабатывать ошибки и проверять статус ответа.

10.

Казахский университет технологии и бизнеса им. К. Кулажанова
Безопасность REST API
Безопасность — критически важный аспект разработки API. Незащищенный API может привести к утечке данных, несанкционированному доступу и
другим серьезным проблемам.
Аутентификация
Авторизация
Проверка подлинности пользователя. Основные методы: API-ключи,
Определение прав доступа аутентифицированного пользователя к
JSON Web Tokens (JWT), OAuth 2.0. JWT особенно популярен благодаря
конкретным ресурсам и операциям. Реализуется через роли,
своей безопасности и возможности хранения дополнительной
разрешения или списки контроля доступа (ACL).
информации о пользователе.
Валидация данных
HTTPS
Проверка входных данных на соответствие ожидаемому формату и
Использование шифрования для защиты данных при передаче.
бизнес-правилам. Помогает предотвратить SQL-инъекции, XSS-атаки и
Критически важно для любого производственного API, особенно если
другие уязвимости, связанные с некорректными входными данными.
передаются конфиденциальные данные.
Также рекомендуется внедрять ограничение частоты запросов (rate limiting) для предотвращения DoS-атак и мониторинг подозрительной
активности.

11.

Казахский университет технологии и бизнеса им. К. Кулажанова
Документирование REST API
Хорошая документация — ключевой фактор успеха API. Она позволяет разработчикам быстро понять, как использовать ваш API,
и снижает количество вопросов в техподдержку.
Что включить в документацию
Инструменты для документирования
Общее описание API и принципы его работы
Аутентификация и авторизация
Доступные эндпоинты с методами HTTP
Параметры запросов и формат данных
Возможные коды ответов и их значение
Примеры запросов и ответов
Обработка ошибок и лимиты запросов
Swagger/OpenAPI — стандарт документирования RESTful
API
Postman — создание коллекций запросов с документацией
API Blueprint — язык описания API
RAML (RESTful API Modeling Language)
Automated API documentation — генерация из аннотаций в
коде
Интерактивная документация с возможностью выполнять запросы прямо из браузера значительно упрощает тестирование и
ускоряет освоение API. В PHP-фреймворках, таких как Laravel, существуют пакеты для автоматической генерации
документации на основе кода и аннотаций.

12.

Казахский университет технологии и бизнеса им. К. Кулажанова
Тестирование REST API
Тщательное тестирование API необходимо для обеспечения его стабильной работы, производительности и безопасности.
Существует несколько уровней тестирования, которые следует применять к REST API.
Модульное тестирование
Интеграционное тестирование
Тестирование отдельных компонентов
API в изоляции. В PHP используются
PHPUnit, Codeception или PHP Unit
Проверка взаимодействия компонентов
1
API между собой, включая доступ к базе
данных и внешним сервисам.
Testing Framework.
Нагрузочное тестирование
Оценка производительности API при
высокой нагрузке с использованием
инструментов вроде Apache JMeter или
Функциональное тестирование
3
Проверка соответствия API заявленным
требованиям путем выполнения HTTPзапросов и анализа ответов.
Gatling.
Для ручного тестирования и отладки API удобно использовать такие инструменты, как Postman, Insomnia или curl.
Автоматизированные тесты должны быть частью CI/CD-пайплайна, чтобы предотвратить регрессии при обновлении кода.

13.

Казахский университет технологии и бизнеса им. К. Кулажанова
Итоги и вопросы для самопроверки
Мы рассмотрели основные аспекты создания REST API на PHP: от принципов архитектуры REST до практической реализации, безопасности и тестирования.
Эти знания позволят вам разрабатывать современные, масштабируемые и безопасные интерфейсы для взаимодействия между клиентскими и серверными
компонентами.
1
В чём заключается архитектурный стиль REST?
Подумайте о ключевых принципах: унифицированный интерфейс, отсутствие состояния, клиент-сервер, идентификация ресурсов.
2
Какие методы HTTP используются в REST API и каковы их назначения?
Вспомните GET, POST, PUT, DELETE и их соответствие операциям CRUD.
3
Почему формат JSON стал стандартом обмена данными?
Рассмотрите преимущества JSON по сравнению с другими форматами, такими как XML.
4
Как осуществляется доступ к конкретному ресурсу в REST?
Подумайте о структуре URI и принципах идентификации ресурсов.
5
Какие аспекты безопасности необходимо учитывать при проектировании API?
Вспомните о методах аутентификации, авторизации, валидации данных и шифровании.
Для закрепления материала рекомендуется самостоятельно разработать простой REST API для управления списком задач (todo list) с использованием PHP и
протестировать его с помощью Postman или Fetch.

14.

Казахский университет технологии и бизнеса им. К.Кулажанова
Спасибо за внимание!
English     Русский Правила