Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP dan API RESTful untuk membangunkan perkhidmatan web

Cara menggunakan PHP dan API RESTful untuk membangunkan perkhidmatan web

WBOY
WBOYasal
2023-06-25 15:04:37626semak imbas

Perkhidmatan web ialah perkhidmatan yang dilaksanakan berdasarkan teknologi Web, yang boleh menyediakan data dan fungsi kepada aplikasi dan aplikasi Web lain. RESTful API ialah spesifikasi reka bentuk API berdasarkan prinsip REST, yang menggunakan permintaan HTTP untuk mengakses dan mengendalikan sumber web. Dalam artikel ini, kita akan membincangkan cara melaksanakan pembangunan perkhidmatan web menggunakan PHP dan API RESTful.

Langkah pertama: Fahami prinsip reka bentuk RESTful API

Sebelum menggunakan RESTful API untuk membangunkan perkhidmatan web, kita perlu memahami prinsip reka bentuk RESTful API. Berikut ialah beberapa perkara penting:

  1. Setiap sumber mempunyai URI (Pengecam Sumber Seragam) yang unik.
  2. Gunakan kaedah HTTP untuk mewakili operasi pada sumber. Kaedah HTTP yang biasa digunakan ialah GET, POST, PUT dan DELETE.
  3. Data dihantar dalam format JSON atau XML.
  4. Kod status menunjukkan sama ada permintaan itu berjaya.
  5. RESTful API adalah berdasarkan seni bina klien/pelayan, dan pelanggan serta pelayan berkomunikasi melalui HTTP.

Langkah 2: Pilih rangka kerja PHP

Adalah sangat penting untuk memilih rangka kerja PHP yang sesuai untuk pembangunan API RESTful. Berikut ialah beberapa rangka kerja PHP yang biasa digunakan:

  1. Laravel: Laravel ialah rangka kerja PHP popular yang menyokong pembangunan API RESTful.
  2. Slim: Slim ialah rangka kerja PHP mikro yang sesuai untuk pembangunan pesat API RESTful.
  3. Lumen: Lumen ialah rangka kerja mikro untuk Laravel, yang direka khas untuk membina API RESTful.

Dalam artikel ini, kami memilih untuk menggunakan rangka kerja Lumen untuk pembangunan perkhidmatan web.

Langkah 3: Buat perkhidmatan Web

  1. Pasang rangka kerja Lumen

Anda boleh menggunakan Komposer untuk memasang rangka kerja Lumen. Masukkan arahan berikut dalam terminal untuk memasang versi terkini Lumen:

composer create-project --prefer-dist laravel/lumen web-service

Ini akan mencipta folder yang dipanggil perkhidmatan web dalam direktori semasa dan memasang rangka kerja Lumen di dalamnya.

  1. Buat Laluan

Dalam rangka kerja Lumen, anda boleh menggunakan laluan untuk mentakrifkan kaedah URI dan HTTP API anda. Buka fail routes/web.php dan tambahkan kod berikut di dalamnya: routes/web.php文件,在其中添加以下代码:

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

以上代码定义了五个不同的路由,分别用于获取所有产品、创建新产品、获取单个产品、更新单个产品和删除单个产品。

  1. 创建控制器

在Lumen框架中,可以使用控制器来处理路由。打开app/Http/Controllers目录,在其中创建一个名为ProductController.php的文件,并添加以下代码:

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppProduct;

class ProductController extends Controller
{
    public function index()
    {
        $products = Product::all();

        return response()->json($products);
    }

    public function store(Request $request)
    {
        $product = new Product;
        $product->name = $request->name;
        $product->description = $request->description;
        $product->price = $request->price;
        $product->save();

        return response()->json($product);
    }

    public function show($id)
    {
        $product = Product::find($id);

        return response()->json($product);
    }

    public function update(Request $request, $id)
    {
        $product = Product::find($id);
        $product->name = $request->input('name');
        $product->description = $request->input('description');
        $product->price = $request->input('price');
        $product->save();

        return response()->json($product);
    }

    public function destroy($id)
    {
        $product = Product::find($id);
        $product->delete();

        return response()->json('Product deleted successfully.');
    }
}

以上代码定义了一个名为ProductController的控制器,并实现了五个不同的方法,用于处理API的不同路由。

  1. 创建数据库表

在本例中,我们将使用MySQL数据库。打开.env文件,在其中添加以下行:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=web_service
DB_USERNAME=root
DB_PASSWORD=

以上代码定义了数据库的连接信息。接下来,创建一个名为products的数据表。在终端中输入以下命令:

php artisan make:model Product -m

这将会创建一个名为Product的模型,并在数据库中创建一个与之对应的数据表。

database/migrations目录中找到创建的create_products_table.php文件,并在其中添加以下代码:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->text('description');
        $table->decimal('price', 8, 2);
        $table->timestamps();
    });
}

以上代码定义了数据表的字段和对应的数据类型。接下来,在终端中输入以下命令来执行数据库迁移:

php artisan migrate

此时,数据表就已经创建完成了。

第四步:测试API

在浏览器中访问http://localhost:8000/products,即可查看所有产品信息。使用POST方法请求http://localhost:8000/products,即可创建新的产品。使用GET方法请求http://localhost:8000/products/{id},即可获取指定产品的信息。使用PUT方法请求http://localhost:8000/products/{id},即可更新指定产品的信息。使用DELETE方法请求http://localhost:8000/products/{id}rrreee

Kod di atas mentakrifkan lima laluan berbeza, yang digunakan untuk mendapatkan semua produk, mencipta produk baharu, mendapatkan satu produk , dan kemas kini produk Individu dan memadamkan produk individu.

    Buat pengawal

    Dalam rangka kerja Lumen, anda boleh menggunakan pengawal untuk mengendalikan penghalaan. Buka direktori app/Http/Controllers, buat fail bernama ProductController.php dan tambahkan kod berikut:

    rrreee🎜Kod di atas mentakrifkan fail bernama ProductController dan melaksanakan lima kaedah berbeza untuk mengendalikan laluan API yang berbeza. 🎜
      🎜Buat jadual pangkalan data🎜🎜🎜Dalam contoh ini, kami akan menggunakan pangkalan data MySQL. Buka fail .env dan tambahkan baris berikut di dalamnya: 🎜rrreee🎜Kod di atas mentakrifkan maklumat sambungan pangkalan data. Seterusnya, buat jadual data bernama products. Masukkan arahan berikut dalam terminal: 🎜rrreee🎜Ini akan mencipta model bernama Product dan mencipta jadual data yang sepadan dalam pangkalan data. 🎜🎜Cari fail create_products_table.php yang dibuat dalam direktori database/migrations dan tambahkan kod berikut di dalamnya: 🎜rrreee🎜Kod di atas mentakrifkan medan dan surat-menyurat bagi jenis data jadual data. Seterusnya, masukkan arahan berikut dalam terminal untuk melakukan pemindahan pangkalan data: 🎜rrreee🎜Pada ketika ini, jadual data telah dibuat. 🎜🎜Langkah 4: Uji API🎜🎜Lawati http://localhost:8000/products dalam penyemak imbas untuk melihat semua maklumat produk. Gunakan kaedah POST untuk meminta http://localhost:8000/products untuk mencipta produk baharu. Gunakan kaedah GET untuk meminta http://localhost:8000/products/{id} untuk mendapatkan maklumat tentang produk yang ditentukan. Gunakan kaedah PUT untuk meminta http://localhost:8000/products/{id} untuk mengemas kini maklumat produk yang ditentukan. Gunakan kaedah DELETE untuk meminta http://localhost:8000/products/{id} untuk memadamkan produk yang ditentukan. 🎜🎜Anda boleh menggunakan alatan seperti Posmen untuk menguji API. 🎜🎜Ringkasan🎜🎜Menggunakan PHP dan API RESTful untuk membangunkan perkhidmatan web boleh membantu kami membina perkhidmatan web dengan cepat dan meningkatkan kecekapan pembangunan. Sebelum pembangunan, kita perlu terlebih dahulu memahami prinsip reka bentuk API RESTful dan memilih rangka kerja PHP yang sesuai untuk pembangunan API RESTful. Dalam rangka kerja Lumen, anda boleh menggunakan laluan dan pengawal untuk mentakrifkan API dan memproses API, dan anda juga perlu mencipta jadual pangkalan data. Apabila menguji API, anda boleh menggunakan alatan seperti Postman untuk ujian. 🎜

Atas ialah kandungan terperinci Cara menggunakan PHP dan API RESTful untuk membangunkan perkhidmatan web. 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