Swagger UI是HTML,CSS和JavaScript对象的集合,可以从符合Swagger的API动态生成文档
Spring Boot Swagger OpenAPI 3.0.1 无法呈现此定义错误
我有以下堆栈: 春季启动:2.7.3 启用 Spring Security springdoc-openapi-ui:1.6.15 应用程序.properties # Swagger 属性 springdoc.api-docs.path=/ics/api/docs springdoc.s...
我跟进到 xml 文档部分,以便使用 Swashbuckle 创建 Swagger 文档。它应该允许我通过(在我的例子中)查看端点: http://localhost:51854/swagger/ui/index
部署在代理后面的 springdoc-openapi-ui(Swagger UI)中错误的“生成的服务器 url”
带有 springdoc-openapi-ui (Swagger UI) 的 Spring Boot 2.2 应用程序运行 HTTP 端口。 应用程序被部署到 Kubernetes,Ingress 将 HTTPS 请求从集群外部路由到服务......
如何配置 springdoc-openapi-starter-webflux-ui 以在受保护资源上启用授权/承载
我正在开发一个包含一些公共资源和受保护资源的 webflux 应用程序。 我的依赖项: 我正在开发一个包含一些公共和受保护资源的 webflux 应用程序。 我的依赖: <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>3.0.0</version> <type>pom</type> <scope>import</scope> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-stater-web</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webflux-ui</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.11.5</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-impl</artifactId> <version>0.11.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-jackson</artifactId> <version>0.11.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.liquibase.ext</groupId> <artifactId>liquibase-mongodb</artifactId> <version>4.20.0</version> </dependency> <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>4.20.0</version> </dependency> </dependencies> 应用程序.yml: spring: main: web-application-type: reactive data: mongodb: port: 27017 database: vilya_be liquibase: change-log: classpath:/mongo/changelog-master.xml springdoc: api-docs: path: /v3/swagger-ui.html swagger-ui: path: /v3/api-docs Java代码: @Configuration @EnableWebFluxSecurity @EnableMethodSecurity(securedEnabled = true, jsr250Enabled = true) @RequiredArgsConstructor public class JWTSecurityConfig { private final BearerAuthenticationFilter bearerAuthenticationFilter; @Bean public SecurityWebFilterChain filterChain(ServerHttpSecurity http) { return http.cors() .and() .csrf() .disable() .httpBasic() .disable() .exceptionHandling() .authenticationEntryPoint(entryPoint) .and() .authorizeExchange() .pathMatchers(USER_V1 + REGISTRATION, USER_V1 + SIGN_IN, "/v3/**") .permitAll() .anyExchange() .authenticated() .and() .securityContextRepository(NoOpServerSecurityContextRepository.getInstance()) .addFilterAt( bearerAuthenticationFilter, SecurityWebFiltersOrder.AUTHENTICATION) .build(); } } @RestController @RequestMapping(USER_V1) @RequiredArgsConstructor public class UserResource { private final UserService userService; private final AuthenticationService authenticationService; @PostMapping(REGISTRATION) public Mono<RegistrationResponse> register( @Valid @RequestBody Mono<RegistrationRequest> request) { return userService.register(request); } @PostMapping(SIGN_IN) public Mono<TokenPayload> signIn(@RequestBody Mono<SignInRequest> request) { return authenticationService.authenticate(request); } @GetMapping public Flux<User> findAll() { return userService.findAll(); } } 前两个 api 是公开的,我对它们没有问题,但最后一个 api 是受保护的,所以我希望 swagger ui 会有一个授权或标头部分让我放置不记名令牌。 当前行为: 正如我所提到的,我正在使用 springdoc-openapi-starter-webflux-ui,我认为它会自动配置,所以我想我不需要手动创建 @Bean 类型的 OpenAPI。但我不知道如何配置它以尊重我的安全配置。请帮忙,我也是新手。 PS:没有智能锁图标,只是一个复制图标。顺便说一句,没有授权按钮。 根据文档: 您应该将 @SecurityRequirement 标签添加到受保护的 API。 例如: @Operation(security = { @SecurityRequirement(name = "bearer-key") }) 安全定义示例: @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .components( new Components() .addSecuritySchemes( "bearer-key", new SecurityScheme() .type(SecurityScheme.Type.HTTP) .scheme("bearer") .bearerFormat("JWT"))); } 之后,一个小锁图标将出现在受保护的 API 的右侧,如果单击,将显示授权弹出窗口。 在swagger-ui页面的右上角也会有授权按钮。
如何使用 Swagger UI 在标头中发送多个 cookie?
我正在使用 OpenAPI 和 Swagger UI 在 Node 中编写文档和 API。 API 使用缓存中的 API 密钥进行身份验证。我在我的 OpenAPI 定义中配置了全局 cookie 身份验证。
无法在asp.net core中为swagger api文档添加授权
我有一个用于多个 api 版本控制的 asp.net core 6 项目设置。但是,当我打开 nswager api 文档时。右侧的授权按钮根本不显示。我不确定我是什么
在python flasgger中,如何在web界面默认展开schema?
我已经开始使用 Swagger 来编写 API 文档。请帮我配置一下。默认情况下如何在 Swagger UI 中扩展架构? 从 flasgger 导入 Swagger,swag_from 从烧瓶导入烧瓶 ...
带有一个选项标记为已弃用的 Union 字段的 Pydantic 模型
我有一些 Pydantic 模型,其字段是不同模型的联合。 我正在寻找一种方法来在我的 fastapi 生成的文档中弃用某些联合模型。 我可以让整个领域
我正在尝试使用 dotnet run 命令在浏览器中启动 swagger UI。这是我在 launch.json 文件中尝试过的。预期结果是它应该在指定的 url 启动浏览器并打开
无论如何可以帮助我增加我使用 swagger 的“尝试一下”向我的 RestAPI 发出的 swagger 请求的超时? 我在互联网上漫游,没有找到有用的东西,而且...
我有一个 rest API,我部署了它来使用 enunciate 招摇的 Ui。但是我在使用swagger注解在swagger Ui上添加注释时遇到了一些问题。有一些注解在 Ui 上不起作用(@
是否可以扩展 Swagger/Swashbuckle 以使用新的 Http 方法?
我正在开发一个在 .net core 7 中使用 swashbuckle/swagger 的 api 项目。 我怎么遇到过一个问题,即由于查询长度有限,GET 请求不适合。和其他 Http
使用 Swagger 的 $ref 作为路径时出现错误无法解析引用:尝试解析相对 URL,但没有 basePath
所以,我正在尝试使用 Swagger 创建 api 文档,但是,我试图避免为我们的所有调用使用巨大的 yaml 文件。这是我正在尝试做的事情: 服务器.js const swaggerOptions = {
C# WebAPI Swagger 将所有属性名称更改为小写
我有一个使用 SwaggerUI 的 ASP.NET Core 7 Web API。当我的方法使用类作为参数时,它会将其所有属性更改为小写。 有什么办法可以避免吗?
Spring boot 3 不适用于 springfox 3.0
我一直在尝试将 swagger 与 spring boot 集成。我在 springfox 3.0 中使用了 spring boot 版本 3.0.4 这是我的 pom.xml 文件 springfox 依赖项和父项 ...
pom.xml 包含: io.springfox springfox-swagger2 2.9.1 pom.xml包含: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.1</version> </dependency> 招摇配置文件: @Configuration @EnableSwagger2 @EnableWebMvc public class SwaggerConfig implements WebMvcConfigurer { @RequestMapping(value = "/docs", method = RequestMethod.GET) public String docs() { return "redirect:/swagger-ui.html"; } @Bean public Docket apiDocket() { return new Docket(DocumentationType.SWAGGER_2) .select().apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build() .securitySchemes(Arrays.asList(apiKey())) .securityContexts(Arrays.asList(securityContext())) .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("APIReference") .version("1.0.0") .description("something") .build(); } @Bean SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.any()) .build(); } List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; return Arrays.asList(new SecurityReference("JWT", authorizationScopes)); } private ApiKey apiKey() { return new ApiKey("JWT", "Authorization", "header"); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry .addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry .addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } } 在Application.properties文件中: spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER springfox.documentation.swagger.v2.path=/swagger.json 为了绕过 Swagger 的 Spring Security,我在 WebSecurityConfigure 文件中添加了以下内容: @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/resources/**", "/static/**"); web.ignoring().antMatchers("/v2/api-docs/**"); web.ignoring().antMatchers("/swagger.json"); web.ignoring().antMatchers("/swagger-ui.html"); web.ignoring().antMatchers("/swagger-resources/**"); web.ignoring().antMatchers("/webjars/**"); web.ignoring().antMatchers("/configuration/ui", "/swagger-resources", "/configuration/security"); } 当我尝试从浏览器访问 API 时,我得到以下信息: 我在邮递员或失眠中尝试时得到这个: 浏览器中的网页是这样的: 即使在 insomnia/Postman(200 OK)中,UI 也无法正确呈现,并且浏览器给我错误。 JSON 和 HTML 在失眠中变得很好。 我试图从 MS Edge 和 chrome 中访问 URL。 有人可以帮我解决这个问题吗?
当我尝试使用 swagger-ui-express 插件调用从 expressJS 呈现 swaggerUI 的路由时,我得到一个空白页面。 基本上,我有一条路线“/api-docs/prd”。当调用路线时...
在 NodeJS API 上下载 Swagger JSON 文件
我是 swagger 的新手,我已经编写了 swagger UI 文档的逻辑,但我需要将记录的 API 文档下载为 JSON 文件,你能帮我吗谢谢。 const docs = require('./docs'); 应用程序...
使用 springdoc-openai-ui 和 Spring Boot 生成的 Swagger 时将观众传递给授权服务器
我注意到,在使用我自动生成的 Swagger UI 客户端进行身份验证时,我无权访问自定义 Auth0 权限——事实上,访问令牌用于进行经过身份验证的重新...
我知道这个问题已经被问过很多次了。但是,经过多次尝试,我还没有找到解决问题的方法。 我有一个使用 Spring、MongoDB 和 Swagger 的 Java 项目 (v17) 来允许服务...