Rumah pembangunan bahagian belakang tutorial php Bangunkan perkhidmatan API RESTful yang cekap menggunakan rangka kerja PHP Bebas Lemak

Bangunkan perkhidmatan API RESTful yang cekap menggunakan rangka kerja PHP Bebas Lemak

Jun 27, 2023 am 08:58 AM
php fat-free restful api

RESTful API ialah seni bina perkhidmatan web standard berdasarkan protokol HTTP Ia adalah teknologi paling popular dalam pembangunan pelbagai aplikasi web di Internet hari ini. API RESTful boleh digunakan untuk menyediakan banyak data dan fungsi yang berbeza dengan cepat kepada aplikasi luaran atau perkhidmatan lain. Dalam artikel ini, kami akan memperkenalkan Tanpa Lemak, rangka kerja PHP yang cekap, dan cara menggunakannya untuk membangunkan perkhidmatan API RESTful.

1. Apakah rangka kerja Bebas Lemak? Rangka kerja ini menyediakan banyak modul fungsi asas terbina dalam, seperti penghalaan, enjin templat, pangkalan data, dll., menjadikannya sangat cekap, mudah dan fleksibel semasa membuat aplikasi web. .

Sistem penghalaan yang berkuasa: Sistem penghalaan rangka kerja Tanpa Lemak dengan jelas merangkumi idea rangka kerja tersebut – menyediakan pembangun dengan pemetaan laluan URL yang pantas dan tepat, serta menyediakan banyak fungsi yang membantu pembangun berfungsi, seperti: Perlindungan penghalaan, kekangan penghalaan, alias penghalaan, dsb.

ORM Fleksibel: Rangka kerja Bebas Lemak menyediakan model ORM yang sangat fleksibel, menyokong berbilang pangkalan data, pelbagai perhubungan dan kaedah pertanyaan, dan merupakan rangka kerja operasi pangkalan data yang lengkap.

    Mekanisme pemalam yang berkuasa: Rangka kerja Bebas Lemak menyediakan banyak pemalam yang berkuasa untuk menyokong pelbagai fungsi, termasuk e-mel, pemprosesan imej, keselamatan, penyahpepijatan pencetakan, dsb.
  1. 3. Bagaimana cara menggunakan rangka kerja Bebas Lemak untuk membangunkan perkhidmatan API RESTful?
  2. Pasang rangka kerja Bebas Lemak
Anda boleh memuat turun pakej pemasangan dari laman web rasmi Bebas Lemak, atau anda boleh menggunakan komposer untuk memasangnya.

    Buat folder API RESTful
Buat folder API baharu dalam direktori Web anda dan alihkan rangka kerja Bebas Lemak ke folder API, seperti yang ditunjukkan dalam rajah:

├─API/
│  ├─f3/
│  │  ├─lib/
│  │  ├─...
│  ├─index.php
Salin selepas log masuk

    Buat indeks fail kemasukan API .php
Buat fail index.php, iaitu fail kemasukan untuk perkhidmatan API kami. Kita perlu memasukkan rangka kerja Bebas Lemak.

<?php
$f3 = require('f3/lib/base.php');
// RESTful API 路由
$f3->route('GET /api/@apiname','api@get');
$f3->route('POST /api/@apiname','api@post');
$f3->route('PUT /api/@apiname','api@put');
$f3->route('DELETE /api/@apiname','api@delete');
// 连接数据库
$f3->set('DB', new DBSQL('mysql:host=localhost;port=3306;dbname=test', 'root', 'root'));
// 执行
$f3->run();
Salin selepas log masuk

Dalam fail ini, kami mentakrifkan empat laluan, sepadan dengan empat kaedah permintaan protokol HTTP, iaitu GET, POST, PUT, dan DELETE. Rangka kerja Bebas Lemak menyokong permintaan pemprosesan melalui penghalaan, yang mentakrifkan hubungan pemetaan antara laluan URL dan fungsi. Oleh itu, kami mentakrifkan pengawal yang dipanggil api dan memetakan empat kaedah permintaan yang berbeza kepadanya.
  1. Buat pengawal API

Kami memerlukan pengawal API untuk mengendalikan permintaan yang dimulakan oleh pelanggan dan mengembalikan data tindak balas yang sepadan.

<?php
class api {
    protected $APIVer = 'v1';
    private function respond($response) {
        header('Content-type: application/json; charset=utf-8');
        header('Cache-control: max-age=3600');
        echo json_encode($response, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);
    }
    public function get($f3) {
        $request = new WebREST($f3->get('VERB'), @$f3->get('PARAMS.apiname'), @$f3->get('PARAMS.id'));
        $result = $request->process();
        if ($result) {
            $this->respond($result);
            $f3->status(200);
        }
        else $f3->status(404);
    }
    public function post($f3) {
        $request = new WebREST($f3->get('VERB'), @$f3->get('PARAMS.apiname'), @$f3->get('PARAMS.id'));
        $result = $request->process();
        if ($result) {
            $this->respond($result);
            $f3->status(201);
        }
        else $f3->status(404);
    }
    public function put($f3) {
        $request = new WebREST($f3->get('VERB'), @$f3->get('PARAMS.apiname'), @$f3->get('PARAMS.id'));
        $result = $request->process();
        if ($result) {
            $this->respond($result);
            $f3->status(202);
        }
        else $f3->status(404);
    }
    public function delete($f3) {
        $request = new WebREST($f3->get('VERB'), @$f3->get('PARAMS.apiname'), @$f3->get('PARAMS.id'));
        $result = $request->process();
        if ($result) {
            $this->respond($result);
            $f3->status(202);
        }
        else $f3->status(404);
    }
}
Salin selepas log masuk

Dalam pengawal ini, empat kaedah ditakrifkan: dapatkan, hantar, letak dan padam. Dalam kaedah ini, kita perlu membuat instantiate objek Web REST dan memanggil kaedah prosesnya untuk mendapatkan data respons. Dari perspektif respons HTTP, data respons hendaklah dalam format JSON, jadi dalam kaedah respons, kami menggunakan kaedah json_encode PHP untuk menukar data respons kepada rentetan JSON dan mengeluarkannya kepada klien.
  1. Buat fail kelas Web/REST.php

Fail kelas ini digunakan untuk mengendalikan permintaan daripada pelayan API RESTful.

<?php
namespace Web;
class REST {
    private $verb;  // HTTP 请求方法
    private $apiname; // API名称
    private $id;    // API 记录id
    private $user;  // 用户认证信息
    protected $db;  // 数据库连接
    protected $base;    // 数据库基本名称
    protected $table;   // 表名
    protected $data;    // 用于 POST 和 PUT 请求中的数据
    protected $fields = array(); // 表字段名称
    protected $response_code = array(
        100 => 'Continue',
        101 => 'Switching Protocols',
        200 => 'OK',
        201 => 'Created',
        202 => 'Accepted',
        203 => 'Non-Authoritative Information',
        204 => 'No Content',
        205 => 'Reset Content',
        206 => 'Partial Content',
        300 => 'Multiple Choices',
        301 => 'Moved Permanently',
        302 => 'Found',
        303 => 'See Other',
        304 => 'Not Modified',
        305 => 'Use Proxy',
        307 => 'Temporary Redirect',
        400 => 'Bad Request',
        401 => 'Unauthorized',
        402 => 'Payment Required',
        403 => 'Forbidden',
        404 => 'Not Found',
        405 => 'Method Not Allowed',
        406 => 'Not Acceptable',
        407 => 'Proxy Authentication Required',
        408 => 'Request Timeout',
        409 => 'Conflict',
        410 => 'Gone',
        411 => 'Length Required',
        412 => 'Precondition Failed',
        413 => 'Request Entity Too Large',
        414 => 'Request-URI Too Long',
        415 => 'Unsupported Media Type',
        416 => 'Requested Range Not Satisfiable',
        417 => 'Expectation Failed',
        500 => 'Internal Server Error',
        501 => 'Not Implemented',
        502 => 'Bad Gateway',
        503 => 'Service Unavailable',
        504 => 'Gateway Timeout',
        505 => 'HTTP Version Not Supported'
    );
    public function __construct($verb, $apiname, $id = null, $data = null) {
        $this->verb = $verb;
        $this->apiname = $apiname;
        $this->id = $id;
        $this->data = $data;
        $this->db = Base::instance()->get('DB');
    }
    public function process() {
            //$sql = "SELECT...";
        ...
        }
    }
}
Salin selepas log masuk

Dalam fail kelas ini, kami melaksanakan kelas REST yang mengendalikan permintaan daripada pelayan API RESTful. Kelas mengandungi jenis kaedah permintaan HTTP, nama API, ID rekod API, data untuk diproses, dsb. Kelas ini mengendalikan pangkalan data, mendapatkan data yang berkaitan, mencipta permintaan dan mengembalikan data tindak balas.
  1. IV. Kesimpulan
Seperti yang kita lihat sebelum ini, adalah sangat mudah untuk membangunkan perkhidmatan API RESTful menggunakan rangka kerja PHP Bebas Lemak, kerana ia adalah rangka kerja yang ringan itu sendiri, dan mekanisme penghalaan yang berkuasa bermakna Kami boleh menentukan laluan API dengan hebat fleksibiliti. Selain itu, ia menyediakan banyak modul yang sangat berguna untuk membantu kami menyelesaikan pembangunan aplikasi web dengan cepat. Inilah sebab utama mengapa kami memilih Bebas Lemak sebagai rangka kerja PHP Ia adalah ciri yang ringan, cekap, boleh dipercayai dan fleksibel yang membolehkan kami mencipta API RESTful yang indah.

Atas ialah kandungan terperinci Bangunkan perkhidmatan API RESTful yang cekap menggunakan rangka kerja PHP Bebas Lemak. 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles