Swagger ist ein weit verbreitetes API-Dokumentations- und Testtool, das sich nahtlos in beliebte Web-Frameworks wie Laravel, Spring Boot, CodeIgniter und ExpressJS integrieren lässt. In diesem Artikel konzentrieren wir uns auf die Integration von Swagger mit CodeIgniter.
composer require zircote/swagger-php doctrine/annotations
Um die Datei swagger.json für die Swagger-Benutzeroberfläche zu generieren, müssen wir einen Controller erstellen. Benennen Sie den Controller nach Ihren Wünschen, wir geben ihm SwaggerDocGenerator.php. Im Controller müssen wir OpenApiGenerator von zircote/swagger-php verwenden, um die gesamte @OA-Syntax in JSON zu konvertieren.
<?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'); } } ?>
Durch das Erstellen einer Route auf Config/Routes.php können wir die erwartete Datei sawgger.json generieren.
// Create API documentation ... $routes->get('api/v1/docs/generate', 'SwaggerDocGenerator::generate'); $routes->get('api/v1/docs/ui', 'SwaggerDocGenerator::index');
Dabei werden wir die ersten beiden Möglichkeiten sehen. Über den dritten Weg werden wir in einem anderen Artikel sprechen.
composer require zircote/swagger-php doctrine/annotations
In diesem Artikel haben wir die Integration von Swagger mit CodeIgniter 4, das Generieren der Datei swagger.json, das Rendern in der Swagger-Benutzeroberfläche und den Import in Postman untersucht. Wir haben auch gezeigt, wie man die Swagger-Benutzeroberfläche in benutzerdefinierten Ansichten rendert. Das manuelle Generieren der Datei swagger.json und das Aktualisieren der URL in der Datei swagger-initializer.js ist jedoch nicht ideal.
Im nächsten Artikel werde ich die Automatisierung dieses Prozesses mithilfe benutzerdefinierter CLI-Befehle demonstrieren und zu diesem Zweck ein Open-Source-Paket entwickeln. Teilen Sie Ihre Vorschläge oder Fragen gerne im Kommentarbereich mit.
Das obige ist der detaillierte Inhalt vonIntegrieren Sie die Swagger-Benutzeroberfläche mit Codeigniter4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!