Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan rangka kerja PHP Lumen untuk membangunkan perkhidmatan API RESTful yang ringkas dan mudah digunakan

Gunakan rangka kerja PHP Lumen untuk membangunkan perkhidmatan API RESTful yang ringkas dan mudah digunakan

WBOY
WBOYasal
2023-06-27 11:51:01982semak imbas

Dengan perkembangan pesat teknologi Internet, semakin banyak aplikasi mula menggunakan API RESTful untuk penghantaran dan interaksi data. RESTful API ialah rangka kerja ringan untuk komunikasi berdasarkan protokol HTTP, yang mempunyai kelebihan pengembangan mudah dan keserasian yang kukuh. PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular, dan terdapat banyak rangka kerja yang sangat baik untuk dipilih. Antaranya, Lumen ialah rangka kerja PHP ringan yang boleh membina perkhidmatan API RESTful dengan cepat.

Artikel ini akan memperkenalkan langkah-langkah untuk menggunakan Lumen untuk membangunkan perkhidmatan API RESTful yang mudah dan mudah digunakan. Aspek-aspek berikut akan diliputi:

  1. Pengenalan kepada Lumen
  2. Asas API RESTful
  3. Mula membina perkhidmatan API RESTful
  4. Pengawal penulisan
  5. Menulis model
  6. Menulis laluan
  7. Menulis I
Lumen

Lumen ialah rangka kerja mikro rangka kerja Laravel, yang pantas dan cekap. Berbanding dengan Laravel, Lumen lebih ringan dan mempunyai kelajuan tindak balas yang lebih pantas. Lumen menggunakan Komposer sebagai alat pengurusan pergantungan, yang berdasarkan PHP 7 atau lebih tinggi dan menyokong pengkapsulan API RESTful.

2. Pengetahuan asas tentang RESTful API

RESTful API ialah kaedah penghantaran dan interaksi data untuk komunikasi berdasarkan protokol HTTP. Kekangan asas API RESTful termasuk:

    Model pelanggan/pelayan
  • Stateless
  • Cacheable
  • Antara muka bersatu
  • Sistem berlapis
Kaedah P.ELET dan HTTP yang biasa digunakan termasuk POST. Dengan menggabungkan kaedah HTTP dan laluan sumber URL ini, perkhidmatan API RESTful boleh dibina.

3 Mula membina perkhidmatan API RESTful

Mula-mula, anda perlu memasang rangka kerja Lumen. Masukkan arahan berikut dalam terminal baris arahan:

composer create-project --prefer-dist laravel/lumen your-project-name

Selepas menunggu pemasangan selesai, masukkan direktori projek dan buat fail yang diperlukan seperti pengawal dan model melalui alat baris arahan artisan:

php artisan make:controller YourControllerName
php artisan make:model YourModelName

Sekarang, kami telah menyelesaikan pemasangan rangka kerja Lumen, dan Fail yang diperlukan dicipta untuk kerja kami yang seterusnya.

4 Tulis pengawal

Pengawal ialah kelas PHP yang digunakan untuk memproses permintaan dan membalas respons. Dalam rangka kerja Lumen, pengawal biasanya disimpan dalam folder /app/Http/Controllers.

Tulis pengawal untuk mengendalikan operasi CRUD pada data. Di sini kami menganggap bahawa kami mempunyai jadual data pengguna, termasuk id, nama, e-mel dan medan lain:

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;

class UserController extends Controller
{
    public function index()
    {
        return response()->json(User::all());
    }

    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users'
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        } else {
            $user = User::create([
                'name' => $request->input('name'),
                'email' => $request->input('email')
            ]);
            return response()->json($user, 201);
        }
    }

    public function update(Request $request, $id)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'max:255',
            'email' => 'email|unique:users'
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        } else {
            $user = User::find($id);
            if ($user) {
                $user->name = $request->input('name');
                $user->email = $request->input('email');
                $user->save();
                return response()->json($user);
            } else {
                return response()->json(['error' => 'User not found'], 404);
            }
        }
    }

    public function show($id)
    {
        $user = User::find($id);
        if ($user) {
            return response()->json($user);
        } else {
            return response()->json(['error' => 'User not found'], 404);
        }
    }

    public function destroy($id)
    {
        $user = User::find($id);
        if ($user) {
            $user->delete();
            return response()->json(['message' => 'User deleted']);
        } else {
            return response()->json(['error' => 'User not found'], 404);
        }
    }
}

Di sini kami menulis kelas pengawal bernama UserController, yang mengandungi 5 kaedah: indeks, simpan, kemas kini, tunjukkan dan musnahkan . Mereka masing-masing sepadan dengan lima operasi biasa API RESTful - mendapatkan sumber, mencipta sumber, mengemas kini sumber, mendapatkan sumber tertentu dan memadamkan sumber.

Dalam kod di atas, kami menggunakan responden (respon()) dan model (Pengguna) rangka kerja Lumen, serta pengesah (Validator) yang disediakan oleh rangka kerja Lumen. Selain daripada ini, anda juga boleh memperkenalkan kebergantungan lain dalam pengawal untuk melaksanakan operasi yang lebih kompleks.

5. Model tulis

Model biasanya digunakan untuk menyatakan jadual data supaya apabila pengawal dipanggil untuk mengendalikan permintaan data, data boleh dibaca dan diproses dengan betul. Dalam rangka kerja Lumen, fail model biasanya disimpan dalam folder /app/Models.

Berikut ialah model ringkas Dalam model ini, kami telah bersetuju bahawa nama jadual data ialah pengguna:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class User extends Model
{
    protected $table = 'users';
    protected $fillable = ['name', 'email'];
}

Kelas pengguna dalam kod di atas mewarisi daripada kelas Model rangka kerja Lumen, yang mengandungi beberapa pembolehubah atribut penting. dan kaedah. Di sini, kami menggunakan protected $table = 'users' untuk bersetuju bahawa jadual data yang sepadan dengan model ini dinamakan sebagai pengguna, dan kami juga menggunakan atribut boleh diisi untuk mengehadkan medan yang boleh diberikan kelompok.

6. Laluan tulis

Penghalaan menentukan laluan URL permintaan dan kaedah pengawal yang sepadan, yang digunakan untuk mengedarkan permintaan. Dalam rangka kerja Lumen, fail penghalaan biasanya disimpan dalam folder /routes.

<?php

$router->get('/', function () use ($router) {
    return $router->app->version();
});

$router->get('/users', 'UserController@index');
$router->post('/users', 'UserController@store');
$router->get('/users/{id}', 'UserController@show');
$router->put('/users/{id}', 'UserController@update');
$router->delete('/users/{id}', 'UserController@destroy');

Dalam kod di atas, kami menentukan laluan URL yang sepadan dan kaedah pemprosesan untuk lima operasi, di mana mendapatkan, menyiarkan, meletakkan dan memadam penghala ($penghala) digunakan untuk menentukan kaedah permintaan HTTP.

7. Menguji API

Kini kami telah berjaya menyelesaikan pemasangan rangka kerja Lumen, penulisan kod pengawal, definisi model dan tetapan penghalaan, dan boleh diuji. Masukkan arahan berikut dalam terminal baris arahan untuk memulakan perkhidmatan Web:

php -S 127.0.0.1:8000 -t public

Kemudian buka penyemak imbas dan masukkan localhost:8000/users untuk mengakses perkhidmatan API di atas Anda akan melihat senarai pengguna. Sebagai alternatif, anda boleh menggunakan Postman atau alat klien HTTP lain untuk menguji antara muka.

Ringkasan

Menggunakan rangka kerja Lumen, kami boleh membina perkhidmatan API RESTful yang ringkas dan mudah digunakan. Dengan sokongan rangka kerja Lumen, kami boleh menulis fail yang diperlukan dengan cepat seperti pengawal, model dan laluan serta memulakan perkhidmatan web melalui alat baris arahan untuk ujian. Berbanding dengan kaedah pembangunan PHP tradisional, kaedah ini boleh meningkatkan kecekapan pembangunan dan kecekapan operasi program kami.

Atas ialah kandungan terperinci Gunakan rangka kerja PHP Lumen untuk membangunkan perkhidmatan API RESTful yang ringkas dan mudah digunakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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