Penjelasan terperinci tentang dua kaedah yang biasa digunakan untuk menulis antara muka dalam PHP

PHPz
Lepaskan: 2023-03-31 09:50:13
asal
1214 orang telah melayarinya

Dalam beberapa tahun kebelakangan ini, dengan perkembangan berterusan industri Internet, konsep API (Antara Muka Pengaturcaraan Aplikasi, antara muka program aplikasi) secara beransur-ansur menjadi biasa kepada orang ramai. Dalam seni bina dan pembangunan perisian moden, API bukan sahaja merupakan komponen teknikal yang penting, tetapi juga teras untuk menyokong pertumbuhan perniagaan dan membina platform.

Dalam pelaksanaan API, PHP juga merupakan salah satu bahasa back-end yang paling banyak digunakan. Dalam PHP, biasanya terdapat dua kaedah untuk menulis antara muka API, dan artikel ini akan memperkenalkannya.

1. Kaedah tradisional

Kaedah tradisional juga boleh dipanggil kaedah dalam rangka kerja MVC berdasarkan PHP Kaedah ini biasanya menggabungkan kod antara muka API dengan pengawal (Controller) dalam rangka kerja MVC Disusun secara keseluruhan.

Dalam kaedah ini, kita perlu terlebih dahulu menentukan kelas pengawal, contohnya:

class ApiController {
    public function index() {
        // 代码逻辑
    }
    public function add() {
        // 代码逻辑
    }
    // 更多的业务方法
}
Salin selepas log masuk

Kemudian tentukan laluan untuk memajukan permintaan kepada kaedah pengawal yang sepadan, contohnya:

// 定义路由
Route::get('api', 'ApiController@index');
Route::post('api/add', 'ApiController@add');
// 更多的路由定义
Salin selepas log masuk

Akhir sekali, kita perlu mengembalikan hasil dalam bentuk JSON pada akhir setiap kaedah:

return json_encode($result);
Salin selepas log masuk

Dalam kaedah tradisional, ini adalah cara yang lebih tradisional. Mengatur API melalui pengawal rangka kerja MVC adalah lebih munasabah dari segi kelajuan pembangunan dan kebolehselenggaraan kod, tetapi beberapa projek baru muncul mungkin mempunyai keperluan prestasi yang lebih tinggi Pada masa ini, kami perlu mempertimbangkan untuk menggunakan kaedah kedua:

2. Kaedah Laravel

Laravel ialah rangka kerja pembangunan aplikasi web PHP berdasarkan seni bina MVC, yang boleh mencapai gabungan terbaik pembangunan web yang cekap dan teknologi pembangunan web moden. Pembangunan API dalam Laravel juga disiapkan menggunakan komponen khusus - [Laravel Dingo API](https://github.com/dingo/api/).

Ciri API Laravel Dingo:

  • Fleksibiliti dan kebolehselenggaraan penghalaan
  • Melalui penyeri bersiri (Serializer) dan pembina tindak balas (Fraktal) untuk menyediakan output API yang lebih baik.
  • Kaedah pengesahan berasaskan OAuth2 ialah salah satu kaedah pengesahan yang lebih popular pada masa ini.
  • Menyediakan alat dokumentasi API Swagger untuk membantu pasukan mengurus dokumentasi API dengan lebih baik.

Dalam Laravel Dingo API, kami boleh membina laluan dan pengawal API dengan mudah. Mula-mula, kita perlu mentakrifkan kaedah permintaan API dan format URL dalam laluan, contohnya:

$api = app(Dingo\Api\Routing\Router::class);

$api->version('v1', function ($api) {
    $api->get('items/{id}', 'App\Http\Controllers\ItemsController@show');
    $api->post('items', 'App\Http\Controllers\ItemsController@store');
    $api->put('items/{id}', 'App\Http\Controllers\ItemsController@update');
    $api->delete('items/{id}', 'App\Http\Controllers\ItemsController@destroy');
});
Salin selepas log masuk

Kemudian, kita perlu melaksanakan logik kod API dalam pengawal, contohnya:

use Illuminate\Http\Request;

class ItemsController extends Controller {
    public function show($id) {
        $item = Item::find($id);
        return $item;
    }

    public function store(Request $request) {
        $item = new Item;
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $item;
    }

    public function update(Request $request, $id) {
        $item = Item::find($id);
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $item;
    }

    public function destroy($id) {
        $item = Item::find($id);
        $item->delete();
        return $item;
    }
}
Salin selepas log masuk

Dalam API Laravel Dingo, kita boleh menggunakan kaedah output yang lebih fleksibel, contohnya:

use Illuminate\Http\Request;
use Dingo\Api\Routing\Helpers;
use App\Transformers\ItemsTransformer;

class ItemsController extends Controller {
    use Helpers;

    public function show($id) {
        $item = Item::find($id);
        return $this->response->item($item, new ItemsTransformer);
    }

    public function index() {
        $items = Item::all();
        return $this->response->collection($items, new ItemsTransformer);
    }

    public function store(Request $request) {
        $item = new Item;
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $this->response->item($item, new ItemsTransformer);
    }

    public function update(Request $request, $id) {
        $item = Item::find($id);
        $item->title = $request->input('title');
        $item->description = $request->input('description');
        $item->save();
        return $this->response->item($item, new ItemsTransformer);
    }

    public function destroy($id) {
        $item = Item::find($id);
        $item->delete();
        return $this->response->noContent();
    }
}
Salin selepas log masuk

Kita boleh menggunakan ciri Helper, dengan menggunakan $this->response-> item dan $this- >respons->koleksi kepada format respons output secara fleksibel. Kami juga boleh menggunakan Transformer untuk menukar model kepada format yang diperlukan dalam API.

Ringkasan

Dalam artikel ini, kami mempelajari dua kaedah untuk melaksanakan API dalam PHP: kaedah tradisional dan kaedah Laravel. Walau bagaimanapun, apabila industri Internet terus berkembang, pelaksanaan API juga sentiasa berubah. Kita perlu memilih kaedah pelaksanaan yang sesuai berdasarkan keperluan projek tertentu.

Atas ialah kandungan terperinci Penjelasan terperinci tentang dua kaedah yang biasa digunakan untuk menulis antara muka dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan