Rumah > pembangunan bahagian belakang > tutorial php > PHP Master | Menulis Perkhidmatan Web RESTful dengan Slim

PHP Master | Menulis Perkhidmatan Web RESTful dengan Slim

Lisa Kudrow
Lepaskan: 2025-02-26 09:13:10
asal
639 orang telah melayarinya

PHP Master | Writing a RESTful Web Service with Slim

Siri SitePoint ini telah meneroka prinsip REST. Artikel ini menunjukkan membina perkhidmatan web yang tenang menggunakan Slim, rangka kerja mikro PHP yang diilhamkan oleh Sinatra (Ruby). Sifat ringan Slim, dengan komponen teras seperti penghalaan, permintaan/pengendalian tindak balas, dan sokongan pandangan yang minimum, menjadikannya sesuai untuk API rehat yang mudah. ​​

Konsep Utama:

    Slim adalah kerangka mikro PHP yang sempurna untuk perkhidmatan RESTFul yang mudah, menyokong PHP 5.2 dan kedua-dua gaya pengaturcaraan berfungsi dan (5.3).
  • Laluan peta uris ke fungsi panggil balik untuk kaedah HTTP tertentu. Slim cekap mengendalikan pelbagai kaedah untuk URI yang sama.
  • Contoh aplikasi pengurusan perpustakaan mempamerkan penyenaraian, menambah, memadam, dan mengemas kini butiran buku melalui panggilan perkhidmatan web. Notorm, perpustakaan pangkalan data PHP yang ringan, mengendalikan interaksi pangkalan data.
  • endpoints menggunakan
  • , post(), dan put() kaedah untuk membuat, mengemas kini, dan memadam rekod buku masing -masing. delete()

Memperkenalkan Slim:

Mulailah dengan memuat turun Slim. Contoh ini menggunakan gaya 5.3. Buat

: index.php

<?php
require "Slim/Slim.php";

$app = new Slim();

$app->get("/", function () {
    echo "<h1>Hello Slim World</h1>";
});

$app->run();
?>
Salin selepas log masuk
Salin selepas log masuk
mengakses

dalam penyemak imbas anda memaparkan "Hello Slim World". Slim Autoloads Fail yang diperlukan. Pembina tipis menerima konfigurasi (mis., index.php, MODE, TEMPLATES.PATH). VIEW Menetapkan persekitaran (pembangunan/pengeluaran), dan MODE menentukan direktori templat. Pengendali paparan tersuai boleh menggantikan lalai TEMPLATES.PATH. Contoh: Slim_View

<?php
$app = new Slim(array(
    "MODE" => "development",
    "TEMPLATES.PATH" => "./templates"
));
?>
Salin selepas log masuk
Salin selepas log masuk
Penciptaan laluan adalah penting. Laluan peta URI ke fungsi panggil balik berdasarkan kaedah HTTP. Slim mengutamakan laluan sepadan pertama; Permintaan yang tidak dapat ditandingi mengakibatkan ralat 404. Selepas menentukan laluan, hubungi

untuk memulakan permohonan. run()

Membina Perkhidmatan Perpustakaan:

Mari buat perkhidmatan pengurusan perpustakaan. Notorm memudahkan interaksi pangkalan data (memerlukan contoh PDO).

<?php
require "NotORM.php";

$pdo = new PDO($dsn, $username, $password); // Replace with your database credentials
$db = new NotORM($pdo);
?>
Salin selepas log masuk

Buku Penyenaraian:

endpoint ini menyenaraikan semua buku dalam format json:

<?php
// ... (previous code) ...

$app->get("/books", function () use ($app, $db) {
    $books = array();
    foreach ($db->books() as $book) {
        $books[] = array(
            "id" => $book["id"],
            "title" => $book["title"],
            "author" => $book["author"],
            "summary" => $book["summary"]
        );
    }
    $app->response()->header("Content-Type", "application/json");
    echo json_encode($books);
});
// ... (rest of the code) ...
Salin selepas log masuk
mengendalikan mendapatkan permintaan.

membolehkan mengakses pembolehubah luaran dalam fungsi tanpa nama. Header Response ditetapkan kepada get(), dan data buku dikodkan sebagai JSON. use application/json

Mendapatkan butiran buku:

Dapatkan buku dengan id:

Parameter laluan
<?php
// ... (previous code) ...

$app->get("/book/:id", function ($id) use ($app, $db) {
    $app->response()->header("Content-Type", "application/json");
    $book = $db->books()->where("id", $id);
    if ($data = $book->fetch()) {
        echo json_encode(array(
            "id" => $data["id"],
            "title" => $data["title"],
            "author" => $data["author"],
            "summary" => $data["summary"]
        ));
    } else {
        echo json_encode(array(
            "status" => false,
            "message" => "Book ID $id does not exist"
        ));
    }
});
// ... (rest of the code) ...
Salin selepas log masuk
dihantar ke fungsi panggil balik. Parameter pilihan menggunakan

. Untuk parameter pilihan tanpa hujah panggil balik yang jelas, gunakan :id. /book(/:id) func_get_args()

Menambah dan menyunting Buku:

post() menambah, dan put() mengemas kini buku:

<?php
require "Slim/Slim.php";

$app = new Slim();

$app->get("/", function () {
    echo "<h1>Hello Slim World</h1>";
});

$app->run();
?>
Salin selepas log masuk
Salin selepas log masuk

$app->request()->post() dan $app->request()->put() mengambil pos dan meletakkan data masing -masing. Untuk permintaan yang berasaskan pelayar, gunakan medan tersembunyi _METHOD dengan nilai "letakkan" dalam bentuk anda.

Memadam buku:

Padam buku dengan id:

<?php
$app = new Slim(array(
    "MODE" => "development",
    "TEMPLATES.PATH" => "./templates"
));
?>
Salin selepas log masuk
Salin selepas log masuk

Kaedah delete() membuang rekod pangkalan data. Kaedah map() mengendalikan pelbagai kaedah HTTP pada satu laluan (tidak ditunjukkan di sini).

Kesimpulan:

Artikel ini menunjukkan membina perkhidmatan web yang tenang dengan Slim. Pembangunan selanjutnya harus termasuk pengendalian ralat yang mantap dan pengesahan input. Kod sumber (tidak termasuk di sini) boleh didapati di GitHub (pautan tidak disediakan dalam teks asal). Bahagian Soalan Lazim dari teks asal ditinggalkan kerana ia memberikan maklumat asas yang tersedia melalui dokumentasi Slim.

Atas ialah kandungan terperinci PHP Master | Menulis Perkhidmatan Web RESTful dengan Slim. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan