Сайт в разработке Наполняем разделы и правим ошибки — что-то может выглядеть или работать не так. Если заметили — позвоните или напишите.

Как написать api на php

Как написать api на php — пошаговый разбор: роутинг, JSON-ответы, валидация, авторизация и проверка работы без лишней теории.

Раздел: PHP

Если нужно понять, как написать api на php, начните с простой цели: принять запрос, проверить данные, вернуть JSON и сделать это предсказуемо. Для маленького сервиса не нужен фреймворк, но нужна ясная структура, чтобы код можно было расширять без переписывания.

С чего начать

Сначала определите, какие ресурсы будет отдавать API и какие действия доступны для каждого из них. Обычно хватает четырёх HTTP-методов: GET для чтения, POST для создания, PUT или PATCH для изменения и DELETE для удаления. Для каждого метода заранее продумайте входные поля и формат ответа.

Минимальный набор файлов может выглядеть так:

  • public/index.php — точка входа;
  • src/Router.php — разбор URL и метода;
  • src/Controller — обработчики запросов;
  • src/Service — бизнес-логика;
  • src/Repository — работа с БД.

Такой разнос по слоям помогает не смешивать HTTP-логику и запросы к базе. Если всё держать в одном файле, проект быстро станет неудобным для поддержки.

Базовая обработка запроса

На старте включите строгую отправку JSON и единый формат ответа. Для этого в точке входа прочитайте метод, путь и тело запроса, затем направьте управление в нужный обработчик. Когда спрашивают, как написать api на php, чаще всего забывают именно про единый формат ошибок: он нужен не меньше, чем успешные ответы.

Пример логики:

  1. Получить $_SERVER['REQUEST_METHOD'] и путь;
  2. Распарсить тело через json_decode(file_get_contents('php://input'), true);
  3. Проверить обязательные поля;
  4. Вызвать сервис;
  5. Вернуть JSON и код статуса.

Полезно сразу сделать вспомогательную функцию ответа:

function respond(array $data, int $status = 200): void {
    http_response_code($status);
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    exit;
}

Такой подход упрощает тестирование и делает поведение API одинаковым во всех ветках.

Валидация, ошибки и безопасность

Перед записью в базу проверяйте типы, длину строк и обязательность полей. Не полагайтесь на фронтенд: клиент может отправить что угодно. Если данных не хватает, возвращайте 400 Bad Request с текстом, который объясняет проблему. Если ресурс не найден, подходит 404. Если доступ запрещён — 401 или 403 в зависимости от причины.

Безопасность в простом API обычно сводится к нескольким вещам:

  • Использовать подготовленные запросы PDO, а не склеивать SQL строками;
  • Ограничивать методы и маршруты;
  • Проверять токен, если API не публичный;
  • Не выводить внутренние ошибки в ответе клиенту;
  • Логировать исключения отдельно от JSON-ответа.

Если вы делаете авторизацию по токену, храните проверку в отдельной функции или middleware-подобном слое. Тогда защита не будет дублироваться в каждом контроллере.

Проверка и пример сценария

После того как вы поняли, как написать api на php, проверьте его вручную через curl, Postman или встроенный тестовый скрипт. Начните с простого маршрута GET /health, который возвращает {"status":"ok"}. Затем проверьте создание сущности: отправьте POST с JSON-телом, убедитесь, что сервер отвечает 201 и сохраняет запись, а при пустом имени выдаёт ошибку валидации.

Практичная последовательность такая:

  1. Поднимите локальный сервер;
  2. Проверьте корректный GET-ответ;
  3. Передайте неверный JSON и убедитесь, что он обрабатывается;
  4. Проверьте 400, 401, 404 и 500 на разных сценариях;
  5. Сверьте формат ответа во всех случаях.

Если ответы отличаются по структуре, клиентскому коду будет трудно их обрабатывать. Поэтому лучше сразу договориться о едином виде: {"success":true,"data":...} или {"success":false,"error":...}.

В итоге API на PHP строится не на магии, а на дисциплине: один вход, понятные маршруты, валидные данные, одинаковые ответы и проверка каждого сценария. Когда этот каркас готов, расширять проект становится просто, и именно так обычно начинают, если нужно разобраться, как написать api на php без лишней сложности.

Другие ответы

SSL и безопасность

Как создать ssl сертификат windows

Практический разбор запроса «как создать ssl сертификат windows»: что можно сделать в Windows, какие есть варианты, как проверить результат и избежать типичных ошибок.

PHP

PHP какой тип

Коротко и по делу: разберём запрос php какой тип, покажем, где в PHP есть типы данных, как их проверять и почему вопрос бывает неоднозначным.

CSS

Как задать css в html

Практическое объяснение, как задать css в html: способы подключения, приоритеты, частые ошибки и проверка результата для страницы без лишней теории.

Заявка

Расскажите о проекте

Свяжемся в течение рабочего дня, зададим уточняющие вопросы и предложим варианты. Без навязчивых звонков.

Форма обратной связи

Отвечаем в рабочие дни с 10:00 до 19:00

Написать в Telegram