溫馨提示×

Linux Swagger使用指南:如何快速上手

小樊
117
2025-02-15 10:32:38
欄目: 智能運維

在Linux系統上快速上手Swagger,通常涉及以下幾個步驟:

1. 安裝Swagger

安裝Swagger UI

  1. 更新包列表

    sudo apt update
    
  2. 安裝必要的依賴

    sudo apt install -y openjdk-11-jre-headless
    
  3. 下載并解壓Swagger UI

    wget https://repo1.maven.org/maven2/io/springfox/springfox-swagger-ui/2.9.2/springfox-swagger-ui-2.9.2.html
    unzip springfox-swagger-ui-2.9.2.html
    
  4. 移動解壓后的文件到Web服務目錄(例如 /var/www/html):

    sudo mv springfox-swagger-ui-2.9.2 /var/www/html/swagger-ui
    
  5. 配置Swagger UI: 編輯 /var/www/html/swagger-ui/index.html 文件,找到以下行并進行修改:

    <script>
      window.onload = function() {
        // Begin Swagger UI call region
        const ui = SwaggerUIBundle({
          url: "http://petstore.swagger.io/v2/api-docs",
          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>
    
  6. 啟動Web服務器(例如Apache或Nginx):

    • Apache

      sudo a2ensite default.conf
      sudo systemctl restart apache2
      
    • Nginx

      sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
      sudo nano /etc/nginx/sites-available/default
      

      修改 server 塊中的 rootindex 指令:

      server {
        listen 80 default_server;
        listen [::]: 80 default_server;
        root /var/www/html;
        index index.html index.htm;
        server_name _;
        location / {
          try_files $uri $uri/ =404;
        }
      }
      

      保存并退出編輯器,然后重啟Nginx:

      sudo systemctl restart nginx
      

    現在,你應該能夠通過瀏覽器訪問 http://your_server_ip/swagger-ui 來查看Swagger UI。

安裝Swagger Editor

  1. 下載Swagger Editor

    wget https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.50.0/swagger-editor.min.js
    wget https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.50.0/swagger-editor.min.css
    
  2. 移動文件到Web服務目錄(例如 /var/www/html):

    sudo mv swagger-editor.min.js /var/www/html/swagger-editor.js
    sudo mv swagger-editor.min.css /var/www/html/swagger-editor.css
    
  3. 創建一個簡單的HTML文件來加載Swagger Editor

    sudo nano /var/www/html/swagger-editor.html
    

    添加以下內容:

    <!DOCTYPE html>
    <html>
    <head>
      <link rel="stylesheet" type="text/css" href="swagger-editor.css">
    </head>
    <body>
      <div id="swagger-editor"></div>
      <script src="swagger-editor.js"></script>
      <script>
        window.onload = function() {
          const editor = SwaggerEditor({
            url: "https://petstore.swagger.io/v2/api-docs",
            dom_id: '#swagger-editor'
          });
        };
      </script>
    </body>
    </html>
    
  4. 啟動Web服務器(例如Apache或Nginx):

    • Apache

      sudo a2ensite default.conf
      sudo systemctl restart apache2
      
    • Nginx

      sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
      sudo nano /etc/nginx/sites-available/default
      

      修改 server 塊中的 rootindex 指令:

      server {
        listen 80 default_server;
        listen [::]: 80 default_server;
        root /var/www/html;
        index index.html index.htm;
        server_name _;
        location / {
          try_files $uri $uri/ =404;
        }
      }
      

      保存并退出編輯器,然后重啟Nginx:

      sudo systemctl restart nginx
      

    現在,你應該能夠通過瀏覽器訪問 http://your_server_ip/swagger-editor 來使用Swagger Editor。

2. 配置Swagger

在Spring Boot項目中集成Swagger

  1. 添加依賴: 在項目的 pom.xml 文件中添加以下依賴:

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
    
  2. 配置Swagger: 創建一個配置類來啟用Swagger并定義一些基本信息:

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
      @Bean
      public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.yourproject")) // 這里寫你的Controller包路徑
            .paths(PathSelectors.any())
            .build();
      }
    }
    
  3. 啟動Spring Boot項目: 啟動Spring Boot項目后,訪問 http://localhost:8080/swagger-ui.html(假設服務端口為8080),可以看到Swagger UI界面,其中展示了項目中定義的所有API接口及其詳細信息。

3. 使用Swagger

使用注解描述API

使用Swagger提供的注解來描述API的詳細信息,例如:

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Api(tags = "用戶管理接口")
public class UserController {

  @ApiOperation(value = "獲取用戶信息", notes = "根據用戶ID獲取用戶信息")
  @GetMapping("/users/{id}")
  public User getUser(@PathVariable Long id) {
    // ...
  }
}

在Swagger UI中測試API

啟動Spring Boot項目后,訪問 http://localhost:8080/swagger-ui.html,在Swagger UI界面中,你可以看到項目中定義的所有API接口及其詳細信息,并可以直接在界面上測試接口。

4. 其他技巧

  • **版本控制

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女