PHP

Prosta obsługa żądań w PHP

REST API (Representational State Transfer), to obecnie podstawa każdej aplikacji webowej. I chociaż może być wykorzystany przy użyciu dowolnego protokołu sieciowego, to zwykle przy tworzeniu stron WWW wykorzystuje się protokół HTTP. Od strony serwera obecnych jest wiele frameworków ułatwiających przetwarzanie odebranych informacji oraz wysyłanie odpowiedzi w formacie np. JSON wraz z właściwymi kodami statusów HTTP. Do najbardziej znanych należą Symphony i Laravel. W dalszej części artykułu zaproponuję w przykładach prostą obsługę żądań w PHP.

Typowo REST API obsługuje dedykowane metody protokołu HTTP. Najczęściej są to:
GET – żądanie danych – np. pobranie danych o użytkowniku
POST – wysłanie danych – np. utworzenie nowego użytkownika
PUT – aktualizacja danych – np. aktualizacja danych użytkownika
DELETE – usunięcie danych – np. usunięcie użytkownika

Zdarza się, że wykonujemy prostą aplikację i nie chcemy używać gotowych, dużych frameworków. W tym artykule skupię się na przedstawieniu propozycji takiego uproszczonego REST API. Użyję do tego tylko POST ale nic nie stoi na przeszkodzie aby użyć pozostałych metod.

Dane będziemy wysyłać w postaci komend, które wpasowują się w szablon:

POST
{
    cmd: nazwa-komendy
    params: {
        dane-komendy
    }
}

Tworzenie struktury katalogów projektu

Utwórzmy folder simple-rest-api a w nim /src – tu znajdą się nasze źródła. Skonfigurujemy również PSR-4 autoloader, który będzie automatycznie wyszukiwał klasy w folderze /src.

composer.json
{
    "require": {
        "php": ">=7.2"
    },
    "autoload": {
        "psr-4": {
            "Src\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^8",
        "squizlabs/php_codesniffer": "^3"
    }
}

Teraz możemy zainstalować zależności:

composer install

Pojawił nam się folder /vendor do którego composer pobrał wymagane oprogramowanie.

Czas rozpocząć kodowanie…

Utwórzmy plik src/index.php. To tu kierowane będą zapytania ze strony przeglądarki www, tu będą one przetwarzane i „odprawiane” do konkretnych obsługujących je funkcji.

index.php
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");

$data = json_decode(file_get_contents('php://input'));

if (false === isset($data->cmd)) {
    header("HTTP/1.1 404 Not Found");
    exit();
}

Co do tej pory osiągnęliśmy?

  • skonfigurowaliśmy środowisko
  • utworzyliśmy plik, do którego trafiać będą zapytania ze strony www
  • zdekodowaliśmy zapytanie i sprawdziliśmy czy posiada pole z komendą

Za chwilę dalszy ciąg programu…

W międzyczasie zapoznaj się proszę z SOLID – solidne zasady projektowania oprogramowania

Miłego kodowania!

Jestem mężem, ojcem, programistą, projektantem, analitykiem, amatorskim gitarzystą...

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *