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.
composer require zircote/swagger-php doctrine/annotations
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'); } } ?>
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');
Dalam ini, kita akan melihat dua cara pertama. Kami akan bercakap tentang cara ke-3 dalam artikel lain.
composer require zircote/swagger-php doctrine/annotations
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!