Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menulis api dalam laravel

Bagaimana untuk menulis api dalam laravel

PHPz
PHPzasal
2023-04-23 09:13:41963semak imbas

Sebagai rangka kerja PHP yang popular, Laravel telah menjadi pilihan pertama bagi pembangun untuk menulis API. Dengan Laravel, anda boleh menulis API berkualiti tinggi dengan cepat, yang semakin popular di kalangan pembangun perusahaan dan individu.

Dalam artikel ini, kami akan meneroka cara menulis API menggunakan Laravel. Kami akan mulakan dengan bidang berikut: membina API, penghalaan API, pengawal dan ujian API.

Membina API

Apabila membina API, anda perlu menggunakan perisian tengah dan penghala terbina dalam yang disediakan oleh Laravel. Bermula dari Laravel 5.5, rangka kerja ini mempunyai fungsi Pengawal Sumber API terbina dalam. Ciri ini membolehkan pembangun mencipta API REST standard dengan lebih pantas dan membantu pembangun mengekalkan ketekalan kod.

Bagaimana untuk menggunakan pengawal sumber? Mula-mula, laksanakan arahan berikut dalam baris arahan untuk mencipta pengawal baharu:

php artisan make:controller Api/PostController --api

Ini akan mencipta pengawal API bernama PostController, yang secara automatik akan mewarisi Laravel terbina dalam ResourceController, Dan mengandungi semua kaedah yang telah ditetapkan. Kaedah ini termasuk: indeks, tunjukkan, simpan, kemas kini dan musnahkan.

Penghalaan API

Dalam Laravel, penghalaan digandingkan rapat dengan pengawal kerana kita perlu menentukan pengawal peringkat atas dalam penghalaan yang mengendalikan permintaan API.

Route::prefix('api')->group(function () {
    Route::resource('posts', 'Api\PostController');
});

Laluan ini mentakrifkan URL '/api/posts', yang digunakan untuk mengendalikan fungsi CRUD model Post.

Pengawal

Dalam pengawal sumber, kita boleh menggunakan fungsi yang dipratentukan untuk mengendalikan tugas biasa. Sebagai contoh, kod berikut mula mencipta dan melampirkan muat naik fail artikel siaran, mengalihkan fail dari repositori ke dalam direktori awam:

public function store(Request $request)
{
    $path = $request->file('photo')->store('public/photos');
    
    $post = new Post;
    
    $post->title = $request->input('title');
    $post->description = $request->input('description');
    $post->slug = str_slug($request->input('title'));
    $post->photo = $path;
    
    $post->save();
    
    return new Resource($post);
}

Pengujian API

Menguji API adalah untuk memastikan bahawa ia berfungsi dengan betul Kunci kepada tugas anda, pastikan anda menulis kes ujian semasa menulis API anda. Laravel juga mempunyai alat ujian rangka kerja terbina dalam untuk membantu anda menulis kes ujian dengan mudah.

Apabila menulis ujian untuk API anda, anda boleh menguji pengawal anda dengan menghantar permintaan HTTP dan menyemak respons. Sebagai contoh, kod berikut menguji sama ada pengawal boleh mendapatkan senarai siaran dengan betul:

public function testPostIndex()
{
    $response = $this->json('GET', '/api/posts');
    
    $response->assertStatus(200);
    $response->assertJsonStructure([
        'data' => [
            '*' => [
                'id',
                'title',
                'description',
                'slug',
                'photo',
                'created_at',
                'updated_at'
            ]
        ]
    ]);
}

Kesimpulan

Dalam Laravel, menulis API adalah sangat mudah. Menggunakan pengawal API yang dipratentukan dan penghala terbina dalam, anda boleh membuat API REST standard dengan cepat. Gunakan alat ujian Laravel untuk menulis kes ujian untuk menyemak sama ada kefungsian API berfungsi dengan betul. Dokumentasi yang sangat baik dan sokongan komuniti adalah faktor utama yang menjadikan Laravel sebagai salah satu rangka kerja yang paling popular untuk pembangun.

Atas ialah kandungan terperinci Bagaimana untuk menulis api dalam laravel. 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