OpenApi/Swagger - 客户端和服务器有什么区别?

我已经构建了一个 RESTful 服务,使用 OpenApi 3.0 公开端点yaml

当我构建这个时,它会自动生成一个client目录和一个server目录。

我成功地利用服务器 API 作为消耗请求的端点。

然而,客户端 API 是由完全相同的生成的yaml......接受相同的参数类型并返回与服务器相同的类型。

我的理解是客户端向外部服务发出请求,而服务器则消费来自外部服务的请求。

如果这是正确的,为什么 OpenApi 相同地定义客户端和服务器,并且不提供单独配置它们的方法?


SMILET
浏览 34回答 1
1回答

慕森王

你是对的:我的理解是客户端向外部服务发出请求,而服务器则消费来自外部服务的请求。这些基本上是您规范的示例实现。它们都是根据相同的 OpenAPI 合约构建的,客户端可以调用服务器,服务器将按照规范中描述的各种 API 和数据模式达成一致。这client是一个可以在使用 API 的应用程序中使用的库,因为您可以按原样使用它,向 OpenAPI 定义描述的 API 发出请求。这server只是一个示例服务器应用程序,提供 OpenAPI 中描述的 HTTP 接口。两者本身都不是非常有用,因为客户端只需以正确的方式调用 API,服务器将简单地公开端点并执行诸如序列化/反序列化任何请求或响应数据之类的操作。API 的实现由您决定。通常,我从生成的规范中使用的有用位是类model,因为这有助于确保我的应用程序代码(无论是客户端还是服务器)基于正确的架构。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java