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:
- Pengenalan kepada Lumen
- Asas API RESTful
- Mula membina perkhidmatan API RESTful
- Pengawal penulisan
- Menulis model
- Menulis laluan
- 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
Salin selepas log masuk
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
Salin selepas log masuk
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);
}
}
}
Salin selepas log masuk
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'];
}
Salin selepas log masuk
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');
Salin selepas log masuk
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
Salin selepas log masuk
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!