Rumah rangka kerja php Laravel Pembangunan API RESTful dalam Laravel: membina perkhidmatan berskala dan boleh diselenggara

Pembangunan API RESTful dalam Laravel: membina perkhidmatan berskala dan boleh diselenggara

Aug 13, 2023 pm 03:49 PM
laravel Kembangkan restful api perkhidmatan yang boleh diselenggara

Laravel中的RESTful API开发:构建扩展和可维护的服务

Pembangunan API RESTful dalam Laravel: Membina Perkhidmatan Boleh Skala dan Boleh Diselenggara

Gambaran Keseluruhan:
Dalam bidang pembangunan web, RESTful API telah menjadi salah satu kaedah standard untuk membina perkhidmatan berskala dan fleksibel. Rangka kerja Laravel menyediakan pelbagai alatan dan ciri yang menjadikan membina API RESTful mudah dan cekap. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk membina API RESTful yang boleh skala dan boleh diselenggara serta menyediakan beberapa contoh kod praktikal.

Pertama, kita perlu memasang rangka kerja Laravel. Pemasangan boleh dilakukan melalui Komposer:

composer create-project --prefer-dist laravel/laravel api
Salin selepas log masuk

Selepas pemasangan selesai, kami boleh mula membina API RESTful kami.

  1. Buat Laluan
    Laravel menggunakan laluan untuk menentukan titik akhir API anda yang tersedia. Dalam Laravel, laluan API boleh ditakrifkan dalam fail routes/api.php. Dalam fail ini, kita boleh menggunakan kaedah Route::apiResource untuk menentukan laluan sumber. Berikut ialah contoh mudah:
use AppHttpControllersAPIUserController;

Route::apiResource('users', UserController::class);
Salin selepas log masuk
routes/api.php文件中定义API的路由。在该文件中,我们可以使用Route::apiResource方法来定义资源路由。下面是一个简单的示例:
+-----------+----------------+-------------------------+----------------------+-----------------------------------------+
| Method    | URI            | Name                    | Action               | Middleware                              |
+-----------+----------------+-------------------------+----------------------+-----------------------------------------+
| GET       | /users         | users.index             | UserController@index  | api                                       |
| POST      | /users         | users.store             | UserController@store  | api                                       |
| GET       | /users/{user}  | users.show              | UserController@show   | api                                       |
| PUT/PATCH | /users/{user}  | users.update            | UserController@update | api                                       |
| DELETE    | /users/{user}  | users.destroy           | UserController@destroy| api                                       |
+-----------+----------------+-------------------------+----------------------+-----------------------------------------+
Salin selepas log masuk

上述代码将创建以下RESTful路由端点:

php artisan make:controller API/UserController
Salin selepas log masuk

使用上述代码,我们就可以轻松地创建一个具有基本CRUD功能的用户API。

  1. 控制器
    在Laravel中,控制器用于处理API请求并返回相应的数据。我们可以使用Artisan命令来生成一个新的控制器:
namespace AppHttpControllersAPI;

use AppModelsUser;
use IlluminateHttpRequest;
use AppHttpControllersController;

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

    public function store(Request $request)
    {
        $user = User::create($request->all());
        return response()->json($user, 201);
    }

    public function show(User $user)
    {
        return response()->json($user);
    }

    public function update(Request $request, User $user)
    {
        $user->update($request->all());
        return response()->json($user);
    }

    public function destroy(User $user)
    {
        $user->delete();
        return response()->json(null, 204);
    }
}
Salin selepas log masuk

生成的控制器将位于app/Http/Controllers/API/UserController.php路径下。下面是一个简单的示例:

php artisan make:request CreateUserRequest
Salin selepas log masuk

在上述代码中,我们使用Eloquent模型来处理与数据库的交互。使用return response()->json($data)语句返回相应的JSON数据。

  1. 请求验证
    在构建RESTful API时,请求验证是非常重要的一部分。Laravel提供了方便的请求验证机制,使得验证过程变得简单和灵活。我们可以使用Artisan命令来创建一个新的验证请求:
namespace AppHttpRequests;

use IlluminateFoundationHttpFormRequest;

class CreateUserRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name' => 'required|string',
            'email' => 'required|email|unique:users,email',
            'password' => 'required|string|min:6',
        ];
    }
}
Salin selepas log masuk

生成的请求将位于app/Http/Requests/CreateUserRequest.php路径下。下面是一个示例:

namespace AppHttpControllersAPI;

use AppModelsUser;
use IlluminateHttpRequest;
use AppHttpControllersController;
use AppHttpRequestsCreateUserRequest;

class UserController extends Controller
{
    public function store(CreateUserRequest $request)
    {
        $user = User::create($request->all());
        return response()->json($user, 201);
    }
}
Salin selepas log masuk

在上述示例中,我们定义了一些常见的验证规则,例如“名称”字段必须为字符串,“电子邮件”字段必须为有效的电子邮件地址,并且“密码”字段必须至少为6个字符。

控制器中可以使用这个请求来验证传入的数据:

rrreee

在上述示例中,我们将所有的请求数据传递给create方法之前,首先使用CreateUserRequestKod di atas akan mencipta titik akhir penghalaan RESTful berikut:

rrreee

Menggunakan kod di atas, kami boleh mencipta API pengguna dengan fungsi asas CRUD dengan mudah.

    Pengawal🎜Dalam Laravel, pengawal digunakan untuk mengendalikan permintaan API dan mengembalikan data yang sepadan. Kita boleh menggunakan perintah Artisan untuk menjana pengawal baharu:
rrreee🎜Pengawal yang dijana akan terletak dalam laluan app/Http/Controllers/API/UserController.php. Berikut ialah contoh mudah: 🎜rrreee🎜 Dalam kod di atas, kami menggunakan model Eloquent untuk mengendalikan interaksi dengan pangkalan data. Gunakan pernyataan return response()->json($data) untuk mengembalikan data JSON yang sepadan. 🎜
    🎜Minta pengesahan🎜Minta pengesahan ialah bahagian yang sangat penting apabila membina API RESTful. Laravel menyediakan mekanisme pengesahan permintaan yang mudah, menjadikan proses pengesahan mudah dan fleksibel. Kita boleh menggunakan arahan Artisan untuk membuat permintaan pengesahan baharu:
rrreee🎜Permintaan yang dijana akan terletak dalam laluan app/Http/Requests/CreateUserRequest.php. Berikut ialah contoh: 🎜rrreee🎜 Dalam contoh di atas, kami telah mentakrifkan beberapa peraturan pengesahan biasa seperti medan "nama" mestilah rentetan, medan "e-mel" mestilah alamat e-mel yang sah dan medan "kata laluan" Mestilah sekurang-kurangnya 6 aksara. 🎜🎜Permintaan ini boleh digunakan dalam pengawal untuk mengesahkan data masuk: 🎜rrreee🎜Dalam contoh di atas, kami mula-mula menggunakan CreateUserRequestcreate. /code> untuk mengesahkan. 🎜🎜Ringkasan: 🎜Dalam artikel ini, kami memperkenalkan cara menggunakan rangka kerja Laravel untuk membina API RESTful yang boleh skala dan boleh diselenggara. Daripada menentukan laluan kepada membuat pengawal dan meminta pengesahan, kami telah menyediakan beberapa contoh kod praktikal untuk membantu anda bermula dengan cepat. Dengan memanfaatkan ciri dan alatan kaya yang disediakan oleh rangka kerja Laravel, anda boleh membina API RESTful yang cekap dan boleh dipercayai dengan mudah. 🎜

Atas ialah kandungan terperinci Pembangunan API RESTful dalam Laravel: membina perkhidmatan berskala dan boleh diselenggara. 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)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
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)

Perbandingan versi terkini Laravel dan CodeIgniter Perbandingan versi terkini Laravel dan CodeIgniter Jun 05, 2024 pm 05:29 PM

Versi terkini Laravel 9 dan CodeIgniter 4 menyediakan ciri dan penambahbaikan yang dikemas kini. Laravel9 menggunakan seni bina MVC dan menyediakan fungsi seperti migrasi pangkalan data, pengesahan dan enjin templat. CodeIgniter4 menggunakan seni bina HMVC untuk menyediakan penghalaan, ORM dan caching. Dari segi prestasi, corak reka bentuk berasaskan pembekal perkhidmatan Laravel9 dan rangka kerja ringan CodeIgniter4 memberikannya prestasi cemerlang. Dalam aplikasi praktikal, Laravel9 sesuai untuk projek kompleks yang memerlukan fleksibiliti dan fungsi berkuasa, manakala CodeIgniter4 sesuai untuk pembangunan pesat dan aplikasi kecil.

Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan? Bagaimanakah keupayaan pemprosesan data dalam Laravel dan CodeIgniter dibandingkan? Jun 01, 2024 pm 01:34 PM

Bandingkan keupayaan pemprosesan data Laravel dan CodeIgniter: ORM: Laravel menggunakan EloquentORM, yang menyediakan pemetaan hubungan kelas-objek, manakala CodeIgniter menggunakan ActiveRecord untuk mewakili model pangkalan data sebagai subkelas kelas PHP. Pembina pertanyaan: Laravel mempunyai API pertanyaan berantai yang fleksibel, manakala pembina pertanyaan CodeIgniter lebih ringkas dan berasaskan tatasusunan. Pengesahan data: Laravel menyediakan kelas Pengesah yang menyokong peraturan pengesahan tersuai, manakala CodeIgniter mempunyai kurang fungsi pengesahan terbina dalam dan memerlukan pengekodan manual peraturan tersuai. Kes praktikal: Contoh pendaftaran pengguna menunjukkan Lar

Mana satu yang lebih mesra pemula, Laravel atau CodeIgniter? Mana satu yang lebih mesra pemula, Laravel atau CodeIgniter? Jun 05, 2024 pm 07:50 PM

Untuk pemula, CodeIgniter mempunyai keluk pembelajaran yang lebih lembut dan ciri yang lebih sedikit, tetapi meliputi keperluan asas. Laravel menawarkan set ciri yang lebih luas tetapi mempunyai keluk pembelajaran yang lebih curam. Dari segi prestasi, kedua-dua Laravel dan CodeIgniter berprestasi baik. Laravel mempunyai dokumentasi yang lebih luas dan sokongan komuniti yang aktif, manakala CodeIgniter lebih ringkas, ringan dan mempunyai ciri keselamatan yang kukuh. Dalam kes praktikal membina aplikasi blog, EloquentORM Laravel memudahkan manipulasi data, manakala CodeIgniter memerlukan lebih banyak konfigurasi manual.

Laravel vs CodeIgniter: Rangka kerja manakah yang lebih baik untuk projek besar? Laravel vs CodeIgniter: Rangka kerja manakah yang lebih baik untuk projek besar? Jun 04, 2024 am 09:09 AM

Apabila memilih rangka kerja untuk projek besar, Laravel dan CodeIgniter masing-masing mempunyai kelebihan mereka sendiri. Laravel direka untuk aplikasi peringkat perusahaan, menawarkan reka bentuk modular, suntikan pergantungan dan set ciri yang berkuasa. CodeIgniter ialah rangka kerja ringan yang lebih sesuai untuk projek kecil hingga sederhana, menekankan kelajuan dan kemudahan penggunaan. Untuk projek besar dengan keperluan yang kompleks dan bilangan pengguna yang ramai, kuasa dan kebolehskalaan Laravel adalah lebih sesuai. Untuk projek atau situasi mudah dengan sumber terhad, keupayaan pembangunan CodeIgniter yang ringan dan pantas adalah lebih ideal.

Laravel - Perintah Artisan Laravel - Perintah Artisan Aug 27, 2024 am 10:51 AM

Laravel - Perintah Artisan - Laravel 5.7 hadir dengan cara baharu untuk merawat dan menguji arahan baharu. Ia termasuk ciri baharu untuk menguji arahan artisan dan demonstrasi disebut di bawah?

Laravel vs CodeIgniter: Rangka kerja manakah yang lebih baik untuk projek kecil? Laravel vs CodeIgniter: Rangka kerja manakah yang lebih baik untuk projek kecil? Jun 04, 2024 pm 05:29 PM

Untuk projek kecil, Laravel sesuai untuk projek yang lebih besar yang memerlukan fungsi dan keselamatan yang kukuh. CodeIgniter sesuai untuk projek yang sangat kecil yang memerlukan ringan dan mudah digunakan.

Manakah enjin templat yang lebih baik, Laravel atau CodeIgniter? Manakah enjin templat yang lebih baik, Laravel atau CodeIgniter? Jun 03, 2024 am 11:30 AM

Membandingkan enjin templat Laravel's Blade dan CodeIgniter's Twig, pilih berdasarkan keperluan projek dan keutamaan peribadi: Blade adalah berdasarkan sintaks MVC, yang menggalakkan organisasi kod dan warisan templat yang baik. Twig ialah perpustakaan pihak ketiga yang menyediakan sintaks fleksibel, penapis berkuasa, sokongan lanjutan dan kotak pasir keselamatan.

Laravel - Penyesuaian Penomboran Laravel - Penyesuaian Penomboran Aug 27, 2024 am 10:51 AM

Laravel - Penyesuaian Penomboran - Laravel termasuk ciri penomboran yang membantu pengguna atau pembangun menyertakan ciri penomboran. Paginator Laravel disepadukan dengan pembina pertanyaan dan ORM Fasih. Kaedah penomboran automatik

See all articles