首頁  >  文章  >  後端開發  >  如何使用PHP和Swagger進行API文件生成

如何使用PHP和Swagger進行API文件生成

王林
王林原創
2023-05-11 16:40:421697瀏覽

隨著網路的快速發展,API(Application Programming Interface)已成為現代應用程式開發的標準方式。 API是指允許應用程式之間交換資料和功能的一組接口,使得應用程式之間可以方便、快速地互動。

當我們建立了一個API後,為了方便其他開發者使用我們的API,需要為API撰寫詳細的文件。然而,手動編寫API文件是一項耗費時間和精力的工作,因此使用自動化工具進行API文件產生是非常必要且有效的。

本文將介紹如何使用PHP和Swagger進行API文件產生。

一、Swagger是什麼?

Swagger是一種用來描述和定義RESTful APIs的規格。它可以被用於產生人類可讀的文檔,以及程式碼產生器,以產生客戶端和服務端程式碼。 Swagger還可以用於API測試和偵錯。

二、Swagger的安裝與配置

要使用Swagger產生API文檔,首先需要安裝它。我們可以使用Composer來安裝Swagger,Composer是PHP的一個依賴管理器,可以下載最新版本的Swagger。

使用以下指令進行Swagger的安裝:

composer require "swagger-api/swagger-ui:^3.50"

安裝完成後,我們需要為Swagger進行一些設定。在專案根目錄下建立一個swagger.php文件,並加入以下程式碼:

<?php

require_once(__DIR__ . '/vendor/autoload.php');

use OpenApiAnnotations as OA;

$swagger = OpenApiscan('/path/to/your/controllers');

header('Content-Type: application/json');
echo $swagger;

在上述程式碼中,/path/to/your/controllers應被替換為你自己的控制器路徑。此外,我們還需要在composer.json檔案中加入一些設定:

    "config": {
        "platform": {
            "php": "7.4"
        }
    },
    "autoload": {
        "classmap": [
            "app/",
            "database/",
            "routes/",
            "tests/"
        ]
    },
    "require": {
        "php": "^7.4",
        "laravel/framework": "^8.40",
        "tymon/jwt-auth": "^1.0",
        "doctrine/dbal": "^2.13",
        "swagger-api/swagger-ui": "^3.50"
    },
    "require-dev": {
        "facade/ignition": "^2.5",
        "fzaninotto/faker": "^1.9.1",
        "mockery/mockery": "^1.4.2",
        "nunomaduro/collision": "^6.0",
        "phpunit/phpunit": "^9.3.3"
    },

三、使用Swagger產生API文件

安裝並設定完Swagger後,我們就可以開始使用它來生成API文件了。我們可以使用以下指令來產生API文件:

php swagger.php > swagger.json

在以上指令中,swagger.php是剛才所建立的Swagger設定文件,swagger.json是我們產生的API文件檔。

四、使用Swagger UI展現API文件

產生API文件後,我們希望將其展現出來,以方便其他人查看。可以使用Swagger UI來展現API文件。 Swagger UI是用來展示Swagger所描述的RESTful API資訊及其實作的JavaScript庫。

我們可以將以下內容加入到public目錄下的index.php檔案中:

require_once(__DIR__ . '/../vendor/autoload.php');

$swagger = file_get_contents(__DIR__ . '/../swagger.json');
$swaggerData = json_decode($swagger, true);
?>
  <!DOCTYPE html>
  <html>
  <head>
    <meta charset="UTF-8">
    <title>Swagger UI</title>
    <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/swagger-ui-dist/swagger-ui.min.css" >
    <style>
      html
      {
        box-sizing: border-box;
        overflow: -moz-scrollbars-vertical;
        overflow-y: scroll;
      }
      *, *:before, *:after
      {
        box-sizing: inherit;
      }

      body
      {
        margin:0;
        background: #fafafa;
      }
    </style>
  </head>

  <body>
  <div id="swagger-ui"></div>

  <script src="https://cdn.jsdelivr.net/npm/swagger-ui-dist/swagger-ui-bundle.js"> </script>
  <script src="https://cdn.jsdelivr.net/npm/swagger-ui-dist/swagger-ui-standalone-preset.js"> </script>
  <script>
      window.onload = function() {
          // Begin Swagger UI call region
          const ui = SwaggerUIBundle({
            url: "<?php echo '/swagger.json'; ?>",
            dom_id: '#swagger-ui',
            deepLinking: true,
            presets: [
              SwaggerUIBundle.presets.apis,
              SwaggerUIStandalonePreset
            ],
            plugins: [
              SwaggerUIBundle.plugins.DownloadUrl
            ],
            layout: "StandaloneLayout"
          })
          // End Swagger UI call region
          
          window.ui = ui
      }
  </script>
  </body>

  </html>

在上述程式碼中,我們使用了Swagger UI的JavaScript庫,透過該程式庫可以將生成的API文件以美觀的HTML頁面形式展現出來。

展示API文檔的範例頁如下圖所示:

如何使用PHP和Swagger進行API文件生成

#五、結論

使用Swagger可以方便地對API進行文檔生成和管理。本文介紹了使用PHP和Swagger進行API文件產生的方法,步驟包括安裝和設定Swagger、使用Swagger產生API文件以及使用Swagger UI展現API文件。相信讀者經過本文的介紹後,能夠輕鬆地使用Swagger產生自己的API文件。

以上是如何使用PHP和Swagger進行API文件生成的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn