Rumah > rangka kerja php > ThinkPHP > teks badan

Cara menggunakan Swagger dengan ThinkPHP6

王林
Lepaskan: 2023-06-20 08:58:54
asal
1990 orang telah melayarinya

Swagger ialah alat penjanaan dokumen API yang popular yang membantu pembangun mencipta, mereka bentuk dan menggunakan antara muka API dengan mudah. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Swagger untuk menjana dokumentasi API dalam ThinkPHP6 dan menggunakan Swagger-UI untuk melihat dan menguji antara muka API.

Langkah pertama: Pasang Swagger-UI dan Swagger-Annotations

Untuk menggunakan Swagger dalam ThinkPHP6, anda perlu memasang pustaka Swagger-UI dan Swagger-Annotations. Mereka boleh dipasang melalui Komposer, cuma jalankan arahan berikut dalam direktori akar projek:

composer require zircote/swagger-php
composer require swagger-api/swagger-ui
Salin selepas log masuk

Langkah 2: Tambah Swagger-Anotasi dalam pengawal

Untuk menggunakan Swagger dalam pengawal, anda perlu untuk menambah Anotasi Swagger dalam anotasi pengawal. Sebagai contoh, berikut ialah contoh pengawal dan kod sampel menggunakan Swagger-Annotations di dalamnya:

<?php
namespace appcontroller;

use thinknnotationouteGroup;
use thinknnotationouteMiddleware;
use thinkController;

/**
* @Group("/api/v1")
* @Middleware(class="ppmiddlewareToken")
*/
class UserController extends Controller
{
    /**
    * 用户列表接口
    *
    * @SwaggerGet(
    *     path="/user/list",
    *     summary="获取用户列表",
    *     tags={"User"},
    *     @SwaggerResponse(response="200", description="OK"),
    *     @SwaggerResponse(response="401", description="Unauthorized"),
    * )
    */
    public function index()
    {
        // 代码逻辑
    }
}
Salin selepas log masuk

Dalam kod di atas, kami telah menggunakan @Group anotasi untuk menentukan awalan laluan pengawal, menggunakan @Middleware anotasi untuk menentukan perisian tengah pengawal. Dalam kaedah index, kami menggunakan anotasi @SwaggerGet untuk menentukan maklumat yang diperlukan untuk permintaan GET, seperti laluan permintaan, ringkasan antara muka, teg, maklumat respons, dsb.

Langkah 3: Jana dokumen Swagger

Terdapat banyak cara untuk menjana dokumen Swagger, termasuk menulis dokumen Swagger secara manual, menggunakan editor Swagger, menggunakan penjana Swagger, dsb. Di sini, kami akan menggunakan alat baris arahan yang disediakan oleh Swagger-Annotations untuk menjana dokumentasi Swagger secara automatik.

Masukkan arahan berikut dalam direktori akar projek:

php think swagger output json > swagger.json
Salin selepas log masuk

Ini akan mengeluarkan dokumen Swagger ke dalam fail JSON menggunakan perintah output dalam Swagger-Annotations.

Langkah 4: Gunakan Swagger-UI untuk melihat dan menguji antara muka API

Sekarang kami telah menghasilkan dokumen Swagger, kami perlu memaparkannya. Kita boleh menggunakan Swagger-UI untuk melihat dan menguji antara muka API.

Buat direktori baharu public/swagger dalam projek dan salin semua fail statik yang dimuat turun daripada tapak web rasmi Swagger-UI ke direktori ini. Kemudian, kita perlu mengubah suai pembolehubah index.html dalam fail url untuk menunjukkannya ke dokumen Swagger yang baru kami hasilkan.

var url = "../swagger.json";
Salin selepas log masuk

Akhir sekali, buka http://localhost/swagger dalam penyemak imbas untuk melihat antara muka Swagger-UI. Di sini, anda boleh menyemak imbas dokumentasi antara muka API, menguji antara muka API dan melihat permintaan dan maklumat tindak balas antara muka API.

Ringkasan:

Di atas adalah semua langkah untuk menggunakan Swagger untuk menjana dokumen API dalam ThinkPHP6. Dengan menggunakan Swagger, pembangun boleh melengkapkan dokumentasi, ujian dan penggunaan antara muka API dengan lebih mudah, meningkatkan kecekapan pembangunan dan mengurangkan kos pembangunan. Walau bagaimanapun, perhatian juga harus diberikan untuk melindungi keselamatan antara muka API untuk mengelakkan serangan berniat jahat dan kebocoran data.

Atas ialah kandungan terperinci Cara menggunakan Swagger dengan ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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