如何在 java EE 应用程序中将授权按钮添加到 swagger-ui
How adding Authorize Button to swagger-ui in java EE application
我有一个 java EE 应用程序,我想添加 swagger-ui 来记录我的 java REST API.
我的 Swagger-ui 它可以工作,但我想在我的 java EE 应用程序
中将授权按钮添加到 swagger-ui
谢谢你
这是我的pom.xml
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.swagger/swagger-jaxrs -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
Application.java
@ApplicationPath("api")
public class Aplicacion extends Application{
public Aplicacion() {
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setTitle("TJaxRs Swagger");
beanConfig.setBasePath("/JaxRs/api");
beanConfig.setResourcePackage("org.api.recursos");
beanConfig.setScan(true);
}
}
我强烈推荐 OpenAPI 规范,以便在第一步理解 API 定义细节。 https://swagger.io/docs/specification/authentication/. Then, Swagger Core Jersey's Github page might be the right address https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5#using-a-servlet.
为了快速找到答案,我将解释“授权”按钮出现在右上角的时间和原因。请通过 https://editor.swagger.io 查看默认的 Swagger 宠物示例。您将在端点定义之后立即看到 securityDefinitions。通过这个,我们可以定义安全标准。就像软件中的变量声明。
securityDefinitions:
petstore_auth:
type: "oauth2"
authorizationUrl: "http://petstore.swagger.io/oauth/dialog"
flow: "implicit"
scopes:
write:pets: "modify pets in your account"
read:pets: "read your pets"
api_key:
type: "apiKey"
name: "api_key"
in: "header"
那是救不了我们的,我们必须 link 用 API 定义安全选项。在 API 中,您可以放置为指定的 API.
启用的已定义安全选项
responses:
"200":
description: "successful operation"
schema:
$ref: "#/definitions/ApiResponse"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
在 Java 站点中,bean 配置将提供修改生成的 Swagger 内容的机会。那将是像下面这样的东西。希望您能从中受益。
BeanConfig swaggerConfigBean = new BeanConfig();
swaggerConfigBean.setConfigId(CONFIG_ID);
swaggerConfigBean.setTitle(TITLE);
swaggerConfigBean.setContact(CONTRACT);
swaggerConfigBean.setSchemes(new String[]{"http", "https"});
swaggerConfigBean.setResourcePackage(yourPackage);
swaggerConfigBean.setVersion(VERSION);
swaggerConfigBean.setBasePath(BASE_PATH);
swaggerConfigBean.setPrettyPrint(true);
swaggerConfigBean.setScan(true);
Swagger swagger = swaggerConfigBean.getSwagger();
swagger.addSecurityDefinition(SECURITY_DEF_FOR_API_KEY, new ApiKeyAuthDefinition(X_HEADER_API_KEY,
In.HEADER));
我有一个 java EE 应用程序,我想添加 swagger-ui 来记录我的 java REST API.
我的 Swagger-ui 它可以工作,但我想在我的 java EE 应用程序
中将授权按钮添加到 swagger-ui
谢谢你
这是我的pom.xml
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.swagger/swagger-jaxrs -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
Application.java
@ApplicationPath("api")
public class Aplicacion extends Application{
public Aplicacion() {
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setTitle("TJaxRs Swagger");
beanConfig.setBasePath("/JaxRs/api");
beanConfig.setResourcePackage("org.api.recursos");
beanConfig.setScan(true);
}
}
我强烈推荐 OpenAPI 规范,以便在第一步理解 API 定义细节。 https://swagger.io/docs/specification/authentication/. Then, Swagger Core Jersey's Github page might be the right address https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5#using-a-servlet.
为了快速找到答案,我将解释“授权”按钮出现在右上角的时间和原因。请通过 https://editor.swagger.io 查看默认的 Swagger 宠物示例。您将在端点定义之后立即看到 securityDefinitions。通过这个,我们可以定义安全标准。就像软件中的变量声明。
securityDefinitions:
petstore_auth:
type: "oauth2"
authorizationUrl: "http://petstore.swagger.io/oauth/dialog"
flow: "implicit"
scopes:
write:pets: "modify pets in your account"
read:pets: "read your pets"
api_key:
type: "apiKey"
name: "api_key"
in: "header"
那是救不了我们的,我们必须 link 用 API 定义安全选项。在 API 中,您可以放置为指定的 API.
启用的已定义安全选项 responses:
"200":
description: "successful operation"
schema:
$ref: "#/definitions/ApiResponse"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
在 Java 站点中,bean 配置将提供修改生成的 Swagger 内容的机会。那将是像下面这样的东西。希望您能从中受益。
BeanConfig swaggerConfigBean = new BeanConfig();
swaggerConfigBean.setConfigId(CONFIG_ID);
swaggerConfigBean.setTitle(TITLE);
swaggerConfigBean.setContact(CONTRACT);
swaggerConfigBean.setSchemes(new String[]{"http", "https"});
swaggerConfigBean.setResourcePackage(yourPackage);
swaggerConfigBean.setVersion(VERSION);
swaggerConfigBean.setBasePath(BASE_PATH);
swaggerConfigBean.setPrettyPrint(true);
swaggerConfigBean.setScan(true);
Swagger swagger = swaggerConfigBean.getSwagger();
swagger.addSecurityDefinition(SECURITY_DEF_FOR_API_KEY, new ApiKeyAuthDefinition(X_HEADER_API_KEY,
In.HEADER));