Перейти к публикации

Пишем простейший API на PHP


Рекомендованные сообщения

Не буду объяснять зачем вам нужно API в вашем приложении. Просто покажу простейшую реализацию

Желательно ознакомиться с этим

 

Подготовим .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Начнем с index.php

Он отвечает за роутинг по сайту (api или отображение контента), но в нашем случае линкует лишь на API

<?php

$routes = explode('/', $_SERVER['REQUEST_URI']);

if ($routes[1] == 'api') {
include 'api.php';
}

Создаем файл api.php в который будет неявно передаваться переменная $routes

<?php

try {
header('Content-Type: application/json');
http_response_code(200);
include __DIR__ . "/engine/api/$routes[2]/$routes[3].php";
} catch (RuntimeException $e) {
http_response_code(500);
print json_encode([
'issueType' => substr(strrchr(get_class($e), "\\"), 1),
'issueMessage' => $e->getMessage(),
'issueCode' => $e->getCode()
]);
}

В общем-то на этом все. Теперь пишем примеры

Создаем папку engine,в которой будут конфиги и прочий ваш код. В ней же создаем папку api

Дальше по вашей структуре. К примеру взаимодействие с пользователями:

/engine/api/users

Для примера добавление пользователя и вывод списка всех пользователей

 

add.php

<?php

use Exception\IllegalArgumentException;
use Database\PDO;

$mysqli = new PDO();

$request = json_decode(file_get_contents("php://input"), true);
if (!isset($request['name'])) throw new IllegalArgumentException("Fields must be exists");

$mysqli->addAuthor($request['name']);

get_all.php

<?php

use Database\PDO;

print json_encode((new PDO())->getAuthors());

Использование

example.com/api/users/add

POST запрос с параметрами string name

 

example.com/api/users/get_all

POST запрос без входных параментров

Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...