swagger本地环境配置

swagger本地环境配置

关于swagger我目前也是刚接触,还没有深入了解,之后再不断补充,有要用到swagger的朋友可以通过本文快速完成swagger的本地环境配置。

一. 下载Nodejs。在官网下载最新的 Nodejs:https://nodejs.org/en/。当前常用的版本是 10.13.0。

这里需要注意的是,在 Nodejs 安装安成后会在一个新的 cmd 中自动安装相应的 package,安装过程中可能会重启电脑,而且在某些时候重启过后会提示 warning,并再次重新启动电脑,此时,只需要将打开的 cmd 窗口关闭即可,不影响后续的操作。在安装完成后,可以测试 node 和 npm(即上面说的 node 包管理器)的版本。

node -v
npm -v

二. 下载Swagger-editor和Swagger-ui

git clone https:``//github.com/swagger-api/swagger-editor
git clone https:``//github.com/swagger-api/swagger-ui.git

三. 安装http-server。当前默认端口是8080,如果被占用可以通过命令修改:http-server –p 8081

npm install -g http-server
http-server –p ``8081` `swagger-editor

四. 启动http-server,此时,便可以在网页上输入 http://localhost:808,或者输入 shell 中提示的地址登陆 Swagger-editor 了,界面如图所示。如果输入网址出错,可以先尝试更换浏览器重新进入:

http-server swagger-editor
http:``//localhost:8081

注意:请在swagger-editor的存储路径下执行以上代码,否则无法登录网页。

### 如何正确配置 Swagger 的访问路径及 URL 设置 Swagger 提供了一种简单的方法来生成 API 文档并提供交互式的界面。为了确保 Swagger 访问路径和实际接口一致,可以通过以下方式调整其基础 URL 和其他相关参数。 #### 方法一:通过 YAML 文件设置 Base URL 在项目的 `application.yml` 或 `application.properties` 中可以显式指定 Swagger 使用的基础 URL。这使得无论是在本地开发环境还是生产环境中,都可以统一管理 API 路径[^2]。 以下是基于 Spring Boot 的 YAML 配置示例: ```yaml springfox: documentation: swagger: v2: host: yourapp.abc.com/project-name ``` 上述配置将覆盖默认的主机名(如 `localhost` 或 `127.0.0.1`),从而让 Swagger UI 显示自定义的域名作为基础路径。 --- #### 方法二:修改 SwaggerConfig 配置类 如果项目中有多个版本或者存在冲突的操作方法,则可以在 Swagger 的配置类中进一步优化。例如,在初始化 Docket 对象时,可以手动设置 Host 属性或其他高级选项[^3]。 下面是 Java 配置代码的一个例子: ```java 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; @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .host("yourapp.abc.com") // 自定义Host地址 .select() .apis(RequestHandlerSelectors.basePackage("com.example.controller")) .paths(PathSelectors.any()) .build(); } } ``` 此代码片段中的 `.host()` 方法允许开发者明确指出哪个域名应该被用作 API 请求的基础部分。 --- #### 方法三:处理操作名称冲突 当某些控制器方法具有相同的 HTTP 动词和路径模式时,可能会引发冲突警告。此时可通过如下逻辑解决此类问题: ```java @Bean public Docket customDocket(SwaggerPluginSupport defaultProvider, String xmlFile) { Docket docket = (new Docket(DocumentationType.SWAGGER_2)); docket.select().resolveConflictingActions(apiDescriptions -> apiDescriptions.get(0)) .customProvider((provider) -> new SwaggerHelpTools(provider, xmlFile)); return docket; } ``` 这里的关键在于调用了 `ResolveConflictingActions` 来决定保留哪一个重复项,并且还引入了一个扩展工具类来自定义行为。 --- ### 总结 以上三种方法分别适用于不同场景下的需求——从简单的全局替换到复杂的个性化定制均可实现。合理运用这些技巧可以帮助团队更高效地维护 RESTful 接口文档及其关联的服务端点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值