温馨提示×

Linux Swagger支持哪些协议

小樊
45
2026-07-22 04:16:45
栏目: 智能运维

在 Linux 环境下使用 **Swagger(通常指 OpenAPI 规范 + Swagger 工具链)**时,支持的协议主要取决于 OpenAPI 规范版本你使用的 Swagger 工具(Swagger UI / Swagger Editor / Swagger Codegen 等),而不是 Linux 本身。

下面按常见情况说明。


一、Swagger / OpenAPI 原生支持的协议

✅ 1. HTTP / HTTPS(最常见)

这是 Swagger 最核心、默认支持的协议。

  • http
  • https

示例(OpenAPI 3.x):

servers:
  - url: https://api.example.com/v1
  - url: http://localhost:8080

✅ 2. WebSocket(ws://wss://

OpenAPI 3.1 开始,对 WebSocket 的支持更明确,但 Swagger UI 对 WebSocket 的展示依然有限

servers:
  - url: wss://echo.websocket.events

✅ 支持情况:

  • OpenAPI 规范:✅
  • Swagger Editor:✅(可编辑)
  • Swagger UI:⚠️(展示有限,不能真正调用)

✅ 3. TCP / UDP / gRPC(有限支持)

Swagger 并不原生支持 TCP / UDP / gRPC,但可以通过以下方式“描述”:

方式一:使用 x- 扩展字段(非标准)

x-protocol: grpc

方式二:gRPC + Swagger 的折中方案

  • 使用 grpc-gateway
  • 将 gRPC 自动生成 REST + Swagger

✅ 实际协议:gRPC
✅ 对外暴露:HTTP/JSON + Swagger


✅ 4. MQTT / AMQP / Kafka(不支持)

Swagger 不支持消息队列类协议

替代方案:

  • AsyncAPI(专为 MQTT / Kafka / AMQP 设计)
  • Swagger ≠ AsyncAPI

二、Swagger UI / Editor 在 Linux 上的协议支持

工具 支持的协议 说明
Swagger UI HTTP / HTTPS 能真正发起请求
Swagger UI WebSocket 仅展示
Swagger Editor HTTP / HTTPS / WS 编辑和预览
Swagger Codegen HTTP / HTTPS 生成客户端
Swagger2 / OpenAPI 2 HTTP / HTTPS 不支持 WS

三、Linux 系统层面的说明(重要)

Swagger 本身不关心操作系统

  • Linux ✅
  • Windows ✅
  • macOS ✅

只要满足:

  • 有浏览器(Swagger UI)
  • 或 Node.js / Docker(Swagger Editor)

协议支持完全由 OpenAPI 规范版本 决定。


四、快速总结

Swagger 支持:

  • HTTP / HTTPS(完整支持)
  • WebSocket(规范支持,UI 支持有限)

⚠️ 部分支持:

  • gRPC(需 grpc-gateway)
  • TCP / UDP(需扩展字段)

不支持:

  • MQTT
  • Kafka
  • AMQP
  • 纯 TCP/UDP 服务

五、选型建议

场景 推荐
REST API Swagger / OpenAPI ✅
WebSocket OpenAPI 3.1 + Swagger(展示)
gRPC grpc-gateway + Swagger
消息队列 AsyncAPI

如果你愿意,可以告诉我:

  • 你用的是 Swagger 2 还是 OpenAPI 3
  • 是否使用 Spring Boot / Go / Node
  • 实际想描述哪种协议(HTTP / WebSocket / gRPC / 其他)

我可以给你一个可直接用的 Linux + Swagger 示例配置

0