百家饭OpenAPI平台秋季更新-API网关功能全新上线

百家饭平台最新发布的0.7.0版本引入了全面的API网关功能,包括安全认证、动态访问控制、转发策略、参数过滤和敏感数据处理。这些升级旨在提升API服务的安全性和开发者体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百家饭平台经过夏秋多个版本的迭代,发布0.7.0版本,除了更新了大量OpenAPI编辑功能之外,我们还全新提供了API网关功能。

API网关是我们在开发和运营API的时候,经常会用到的一个功能。我们需要把API从公网服务端口映射到内部端口、开发端口或者模拟端口。在映射的过程中、安全、防护始终是第一位的。

这次百家饭更新的API网关功能涵盖了数据智能脱敏、访问鉴权、动态访问控制、转发策略配置、多种转发模式等功能,详细的说明如下:

  1. 安全认证鉴权

    1. 支持BASIC、JWT、Auth Key等认证方式,提供网关、服务和API等对象的鉴权管理功能。
    2. 支持多级别访问账户配置,可配置全局账户、全局独立调用账户、单服务独立调用账户。
  2. 动态访问控制

    1. API网关权限控制

      1. 基于IP和访问时间区间进行网关访问权限的配置,完成访问控制策略;
    2. 支持IP黑白名单配置

    3. 支持按周/按天进行小时级别的访问权限控制

  3. 多种转发模式

    1. 不仅支持转发到其他服务端口,还支持转发到开发人员或进行模拟服务

      1. 开发人员不需要配置服务端口,独特的客户端转发模式,可支持基于任意IP工作站的动态转发

  4. 支持配置转发策略

    1. 支持集群模式/单机模式下的熔断QPS配置,协助构建恶意访问防火墙
  5. 参数过滤

    1. 根据OpenAPI定义自动生成的过滤和验证功能,实现请求参数的自动化校验功能,无效校验会被 API 网关直接拒绝
      1. 字段类型匹配
      2. 字段内容匹配,支持正则表达式匹配和常见类型匹配
      3. 独特的请求结构匹配功能(JSON/XML),实现业务级别的请求真伪判断
  6. 敏感数据自动发现

    1. 启用智能脱敏功能,对敏感字段数据进行自动化扫描
    2. 预置多种过滤规则(身份证发现、手机号发现等),并支持自定义属性配置
    3. 可灵活配置的过滤设置,协助完成不同级别的数据保密设置
  7. 敏感数据动态脱敏

    1. API请求完成自动化脱敏

相关功能支持在百家饭平台上以网络服务的方式调用,也支持企业级部署哦,有需要的老板记得联系我们哦。

<think>好的,我现在要解决的问题是用户询问springdoc-openapi-ui和springdoc-openapi-starter-webmvc-api之间的区别和功能对比。首先,我需要回顾一下用户提供的引用内容,看看里面有没有相关的信息。 根据引用[3]提到,springdoc-openapi依赖包含了Swagger UI和WebMvc API,不需要额外引入其他依赖。这可能意味着springdoc-openapi-starter-webmvc-api是其中的一部分。而引用[4]提到,使用springdoc-openapi-starter-webmvc-ui时如果依赖版本不一致会导致404错误。这里有一个-webmvc-ui和一个-webmvc-api,用户问的是这两个的区别。 接下来,我需要明确这两个库的具体功能。通常,在Spring项目中,涉及API文档生成的库可能有不同的模块。例如,一个可能负责生成OpenAPI的元数据(API部分),另一个可能负责提供Swagger UI界面(UI部分)。例如,springdoc-openapi-starter-webmvc-api可能负责解析控制器和生成OpenAPI规范的JSON,而springdoc-openapi-ui则负责提供Swagger UI的界面展示。 另外,查看引用[2]和[3]中的依赖配置,用户提到的springdoc-openapi-starter-webmvc-ui被引入,而引用[3]说该依赖包含了Swagger UI和WebMvc API。可能springdoc-openapi-ui是一个更早期的模块,或者被整合到了starter中? 需要进一步核实官方文档或Maven仓库的信息。例如,springdoc-openapi的主要项目可能有不同的starter包。通常,starter-webmvc-ui可能同时包含API处理和UI界面,而starter-webmvc-api可能仅包含API处理部分,不包含UI。但需要确认。 根据经验,通常像Swagger这样的库,会有核心API模块和UI模块分开。例如,springdoc-openapi-core可能处理注解解析,生成OpenAPI数据,而springdoc-openapi-ui则负责提供Swagger UI的界面。但在starter包中,可能将这些整合到一起。例如,springdoc-openapi-starter-webmvc-ui可能是一个starter,包含UI所需的全部依赖,包括API部分,而springdoc-openapi-starter-webmvc-api可能只包含API生成部分,不包含UI。 例如,在用户提供的引用[2]中,引入的是springdoc-openapi-starter-webmvc-ui,版本2.2.0,这表明这个starter可能同时包含API和UI的依赖。而springdoc-openapi-starter-webmvc-api可能是一个更轻量的依赖,只包含生成API元数据的功能,适用于不需要UI的情况,比如仅需要生成OpenAPI JSON而不需要展示UI界面的时候。 再结合引用[4]中的问题,当使用-webmvc-ui时,如果版本不一致会导致资源找不到,这说明-webmvc-ui依赖了Swagger UI的webjar资源。而-webmvc-api可能不包含这些资源,只负责生成API文档的结构。 总结来说,两者的区别可能在于是否包含Swagger UI界面。starter-webmvc-api负责生成OpenAPI规范的数据,而starter-webmvc-ui则在此基础上添加了Swagger UI界面,方便开发者查看和测试API。因此,如果项目只需要生成OpenAPI的JSON数据,可以使用-api;如果需要UI界面,则使用-ui,后者会包含前者功能。 但需要验证这一点是否正确。例如,查看官方文档或者Maven依赖树。假设springdoc-openapi-starter-webmvc-ui依赖了springdoc-openapi-starter-webmvc-api,那么-ui会包含-api功能,同时添加UI相关的依赖。这样,用户如果只引入-api,则无法访问Swagger UI,但可以访问/v3/api-docs端点获取OpenAPI JSON。而引入-ui后,两者都可使用。 因此,回答用户的问题时,需要明确这两个starter的区别在于是否包含Swagger UI界面,以及对应的依赖项。同时,指出使用场景:需要UI时用-ui,否则用-api。另外,可能提到在Spring Boot 3.x中,推荐使用哪个starter,比如引用[3]提到引入springdoc-openapi(内置Swagger UI、webmvc-api),可能指的是starter-webmvc-ui已经整合了必要的依赖,不需要额外引入-api。 最后,确保回答结构清晰,引用相关引用内容来支持结论。</think>### springdoc-openapi-ui 与 springdoc-openapi-starter-webmvc-api 区别与功能对比 #### 1. **功能定位** - **springdoc-openapi-starter-webmvc-api** 该模块专注于生成 OpenAPI 规范(如 JSON 格式的 API 文档元数据),负责解析 Spring WebMVC 控制器中的注解(如 `@RestController`、`@GetMapping` 等),并生成符合 OpenAPI 3.0 规范的文档数据。**不包含 Swagger UI 界面**,仅提供 API 元数据生成能力。 示例端点:`/v3/api-docs`,用于获取 JSON 格式的 API 文档[^3]。 - **springdoc-openapi-starter-webmvc-ui** 在 `webmvc-api` 的基础上,额外集成了 Swagger UI 的静态资源和配置。通过该模块,开发者可以直接访问可视化界面(如 `/swagger-ui.html`)进行 API 的交互测试和文档浏览。**包含完整的 API 元数据生成 + UI 展示功能**。 #### 2. **依赖关系** - **`webmvc-ui` 包含 `webmvc-api` 的功能** `springdoc-openapi-starter-webmvc-ui` 依赖了 `webmvc-api`,因此引入 UI 模块时无需再单独引入 API 模块。 例如,在 Maven 中只需添加: ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.2.0</version> </dependency> ``` 即可同时使用 API 文档生成和 Swagger UI 功能[^2]。 - **`webmvc-api` 独立使用场景** 如果项目仅需生成 OpenAPI 元数据(如提供给第三方集成或自动化工具),且不需要可视化界面,可单独引入 `webmvc-api` 以减少依赖体积: ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> <version>2.2.0</version> </dependency> ``` #### 3. **典型配置差异** - **`webmvc-api` 的配置** 仅需设置 API 文档路径(如 `/v3/api-docs`)[^1]: ```yaml springdoc: api-docs: path: /v3/api-docs ``` - **`webmvc-ui` 的配置** 需额外配置 Swagger UI 路径和资源依赖: ```yaml springdoc: api-docs: path: /v3/api-docs swagger-ui: path: /swagger-ui.html ``` 同时需确保 `swagger-ui` 的 WebJar 版本与依赖一致,避免资源加载失败[^4]。 #### 4. **适用场景** - **选择 `webmvc-api` 的情况** - 仅需生成 OpenAPI 元数据,无需界面展示。 - 需与其他工具(如 Postman、Redoc 等)集成。 - **选择 `webmvc-ui` 的情况** - 需要本地开发和测试时快速查看、调试 API- 项目需要直接向用户提供交互式文档。 #### 5. **版本兼容性** 若使用 `webmvc-ui`,需确保其依赖的 `swagger-ui` WebJar 版本与模块声明一致,否则会导致静态资源路径错误(如 404 问题)[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百家饭AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值