Rumah >pembangunan bahagian belakang >tutorial php >Sepadukan UI Swagger dengan Codeigniter4

Sepadukan UI Swagger dengan Codeigniter4

DDD
DDDasal
2024-12-21 14:13:10152semak imbas

Integrate Swagger UI with Codeigniter4

Swagger ialah dokumentasi API yang digunakan secara meluas dan alat ujian yang disepadukan dengan lancar dengan rangka kerja web popular seperti Laravel, Spring Boot, CodeIgniter dan ExpressJS. Dalam artikel ini, kami akan menumpukan pada penyepaduan Swagger dengan CodeIgniter.

Memasang Ketergantungan:

composer require zircote/swagger-php doctrine/annotations

Memuat turun repo SwaggerUI .zip atau SwaggerUI GitHub:

  • Pautan muat turun: keluaran terbaharu SwaggerUI Muat turun keluaran UI Swagger yang paling sesuai dengan keperluan anda.

Menulis Pengawal:

Untuk menjana fail swagger.json untuk UI Swagger, kami perlu mencipta pengawal. Namakan pengawal sebagai pilihan anda, kami berikannya SwaggerDocGenerator.php. Dalam pengawal, kita perlu menggunakan OpenApiGenerator daripada zircote/swagger-php untuk menukar semua sintaks @OA kepada JSON.

<?php
namespace App\Controllers;

use OpenApi\Generator;

class SwaggerDocGenerator extends BaseController
{
    /**
     * Generate OpenAPI documentation for the API ...
     * @return string
     */
    public function generate(): string
    {
        // Specify the path where your API controllers are located
        $openapi = Generator::scan([APPPATH . 'Controllers']);

        $swaggerContent = $openapi->toJson();

        // Save the generated OpenAPI content to a file
        $filePath = FCPATH . 'swagger_ui/swagger.json';
        file_put_contents($filePath, $swaggerContent);

        return $swaggerContent;
    }

    /**
     * Render the SwaggerUI ...
     * @return string
     */
    public function index()
    {
        return view('swagger_docs/index');
    }
}

?>

Mencipta Laluan:

Dengan mencipta laluan pada Config/Routes.php, kami akan dapat menjana fail sawgger.json yang dijangkakan.

// Create API documentation ...
$routes->get('api/v1/docs/generate', 'SwaggerDocGenerator::generate');
$routes->get('api/v1/docs/ui', 'SwaggerDocGenerator::index');

Memaparkan UI Swagger:

Terdapat banyak cara untuk menjadikan fail swagger.json anda ke dalam SwaggerUI:

  • Mengimport fail swagger.json ke dalam POSTMAN.
  • Menggunakan SwaggerUI dengan pandangan anda sendiri untuk menghasilkan SwaggerUI.
  • Menyediakan persekitaran ke dalam aplikasi bahagian hadapan anda untuk memaparkan SwaggerUI dengan meminta pada backend-API untuk fail swagger.json.

Dalam ini, kita akan melihat dua cara pertama. Kami akan bercakap tentang cara ke-3 dalam artikel lain.

Mengimport fail swagger.json ke dalam POSTMAN:

  • Salin swagger.json.
  • Buka POSMEN.
  • Klik pada butang Import di penjuru kiri sebelah atas.
  • Tampalkan swagger.json yang disalin.

Menggunakan SwaggerUI dengan pandangan anda sendiri untuk menghasilkan SwaggerUI:

  • Buat fail .php pada apl folder pandangan anda/Views/swagger_docs/index.php untuk memaparkan SwaggerUI.
  • Ekstrak fail SwaggerUI .zip yang dimuat turun ke dalam folder awam/swagger_ui/.
composer require zircote/swagger-php doctrine/annotations

Nota:

  • Pastikan anda menjalankan perintah php spark serve untuk menjalankan aplikasi Codeigniter4.
  • Setiap kali anda membuat perubahan dalam sintaks dokumentasi OpenAPI, anda perlu menjalankan http://localhost:8080/api/v1/docs/generate URL untuk menjana fail swagger.json yang dikemas kini.
  • Pastikan anda mengemas kini fail swagger-initializer.js dengan URL kemas kini fail swagger.json.

Kesimpulan:

Dalam artikel ini, kami meneroka penyepaduan Swagger dengan CodeIgniter 4, menghasilkan fail swagger.json, memaparkannya dalam UI Swagger dan mengimportnya ke dalam Posman. Kami juga menunjukkan cara untuk memaparkan UI Swagger dalam paparan tersuai. Walau bagaimanapun, menjana fail swagger.json secara manual dan mengemas kini URL dalam fail swagger-initializer.js adalah tidak sesuai.

Dalam artikel seterusnya, saya akan menunjukkan mengautomasikan proses ini menggunakan arahan CLI tersuai dan bertujuan untuk membangunkan pakej sumber terbuka untuk tujuan ini. Jangan ragu untuk berkongsi cadangan atau pertanyaan anda di bahagian komen.

Atas ialah kandungan terperinci Sepadukan UI Swagger dengan Codeigniter4. 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