cari
Rumahpembangunan bahagian belakangtutorial phpSepadukan UI Swagger dengan Codeigniter4

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
Bagaimana anda boleh menyemak sama ada sesi PHP sudah bermula?Bagaimana anda boleh menyemak sama ada sesi PHP sudah bermula?Apr 30, 2025 am 12:20 AM

Dalam PHP, anda boleh menggunakan session_status () atau session_id () untuk memeriksa sama ada sesi telah bermula. 1) Gunakan fungsi session_status (). Jika php_session_active dikembalikan, sesi telah dimulakan. 2) Gunakan fungsi session_id (), jika rentetan tidak kosong dikembalikan, sesi telah dimulakan. Kedua -dua kaedah ini dapat memeriksa keadaan sesi dengan berkesan, dan memilih kaedah yang hendak digunakan bergantung pada versi PHP dan keutamaan peribadi.

Huraikan senario di mana menggunakan sesi adalah penting dalam aplikasi web.Huraikan senario di mana menggunakan sesi adalah penting dalam aplikasi web.Apr 30, 2025 am 12:16 AM

Sessionsarevitalinwebapplications, terutamanya-commercePlatforms.theymaintainuserdataacrossrequests, crucialforshoppingcarts, pengesahan, andpersonalization.inflask, SessionscanbeimplementedusingsImplecodetomanageusloginsanddateristence.

Bagaimanakah anda dapat mengurus akses sesi serentak di PHP?Bagaimanakah anda dapat mengurus akses sesi serentak di PHP?Apr 30, 2025 am 12:11 AM

Menguruskan akses sesi serentak dalam PHP boleh dilakukan dengan kaedah berikut: 1. Gunakan pangkalan data untuk menyimpan data sesi, 2 menggunakan redis atau memcached, 3. Melaksanakan strategi mengunci sesi. Kaedah ini membantu memastikan konsistensi data dan meningkatkan prestasi konkurensi.

Apakah batasan menggunakan sesi PHP?Apakah batasan menggunakan sesi PHP?Apr 30, 2025 am 12:04 AM

PhpsessionsHaveSeverallimitations: 1) storageConstraintscanleadtoperformanceissues; 2) SecurityVulnerabilityLikeSessionFixationAttackSexist; 3) ScalabilityIschallengingDuetoserver-SpecificStorage;

Terangkan bagaimana pengimbangan beban mempengaruhi pengurusan sesi dan bagaimana mengatasinya.Terangkan bagaimana pengimbangan beban mempengaruhi pengurusan sesi dan bagaimana mengatasinya.Apr 29, 2025 am 12:42 AM

Beban mengimbangi mempengaruhi pengurusan sesi, tetapi dapat diselesaikan dengan replikasi sesi, ketegangan sesi, dan penyimpanan sesi berpusat. 1. Sesi Replikasi Salinan Data Sesi Antara Pelayan. 2. Sesi Stickiness mengarahkan permintaan pengguna ke pelayan yang sama. 3. Penyimpanan Sesi Pusat menggunakan pelayan bebas seperti Redis untuk menyimpan data sesi untuk memastikan perkongsian data.

Terangkan konsep penguncian sesi.Terangkan konsep penguncian sesi.Apr 29, 2025 am 12:39 AM

Sessionlockingisatechniqueusedtoensureauserererersessionremainsexclusivetooneuseratatime.IScrucialFreventingDataCorruptionSandsecuritybreachesinmulti-userapplications.SessionLockingISimplementedusingserverververveChan

Adakah terdapat alternatif untuk sesi PHP?Adakah terdapat alternatif untuk sesi PHP?Apr 29, 2025 am 12:36 AM

Alternatif untuk sesi PHP termasuk kuki, pengesahan berasaskan token, sesi berasaskan pangkalan data, dan redis/memcached. 1.Cookies Menguruskan sesi dengan menyimpan data pada klien, yang mudah tetapi rendah dalam keselamatan. 2. Pengesahan berasaskan token menggunakan token untuk mengesahkan pengguna, yang sangat selamat tetapi memerlukan logik tambahan. 3.Database-berasaskan data menyimpan data dalam pangkalan data, yang mempunyai skalabilitas yang baik tetapi boleh menjejaskan prestasi. 4. Redis/Memcached menggunakan cache yang diedarkan untuk meningkatkan prestasi dan skalabiliti, tetapi memerlukan pemadanan tambahan

Tentukan istilah 'sesi rampasan' dalam konteks PHP.Tentukan istilah 'sesi rampasan' dalam konteks PHP.Apr 29, 2025 am 12:33 AM

SessionHijacking merujuk kepada penyerang yang menyamar sebagai pengguna dengan mendapatkan sessionId pengguna. Kaedah pencegahan termasuk: 1) menyulitkan komunikasi menggunakan HTTPS; 2) mengesahkan sumber sessionId; 3) menggunakan algoritma generasi sesi yang selamat; 4) Secara kerap mengemas kini sessionId.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna