我正在使用 Open API 代码生成器 Maven 插件从文件生成 Open API 3.0。我在我的 pom.xml 中使用这个插件:
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.3.0</version>
Run Code Online (Sandbox Code Playgroud)
该插件生成 API 时没有任何问题,但它不使用 Swagger v3 注释,而是使用旧的 Swagger 注释。例如,参数使用 进行注释@ApiParam
,而@Parameter
应使用io.swagger.v3.oas.annotations
包中的注释:
default ResponseEntity<Fault> getFault(@ApiParam(value = "",required=true) @PathVariable("jobId") String jobId) {
Run Code Online (Sandbox Code Playgroud)
因此,最新的 Swagger UI 无法正确显示文档。当我使用 swagger.v3 注释创建端点时,Swagger UI 可以正常工作。
根据官方网站https://openapi-generator.tech/docs/plugins/,我应该包含这个依赖项:
<dependency>
<groupId>io.swagger.parser.v3</groupId>
<artifactId>swagger-parser</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但即使有这种依赖性,插件仍然会生成带有旧注释的源。
如何强制 Open API 代码生成器使用 Swagger v3 注释?
我有一个带有自动缩放器的服务,每个实例都需要位于一个单独的消费者组中,我通过创建随机消费者组名称来实现它group-id: my-service-${random.uuid}
。我想知道如果所有消费者都消失了,一个消费者组会发生什么。我注意到在 Confluence 平台中,我有很多消费者组,但没有任何消费者。
没有任何消费者的消费群体还能存在多久?
如何配置消费者组在服务被删除后 5 分钟后被删除(我希望删除该组,而不仅仅是删除偏移量)?
spring apache-kafka spring-boot kafka-consumer-api spring-kafka
我创建了具有工作实时端点的AWS Machine Learning模型.我想通过HTTP请求使用已创建的服务.出于测试目的,我使用Postman,我根据亚马逊的API文档创建了请求,但每次我都得到相同的例外:UnknownOperationException
.当我使用Python SDK时,该服务工作正常.下面的示例获取模型信息.
这是我的要求(假凭证):
POST HTTP/1.1
Host: realtime.machinelearning.us-east-1.amazonaws.com
Content-Type: application/json
X-Amz-Target: AmazonML_20141212.GetMLModel
X-Amz-Date: 20170714T124250Z
Authorization: AWS4-HMAC-SHA256 Credential=JNALSFNLANFAFS/20170714/us-east-1/AmazonML/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date;x-amz-target, Signature=fiudsf9sdfh9sdhfsd9hfsdkfdsiufhdsfoidshfodsh
Cache-Control: no-cache
Postman-Token: hd9sfh9s-idsfuuf-a32c-31ca-dsufhdso
{
"MLModelId": "ml-Hfdlfjdof0807",
"Verbose": true
}
Run Code Online (Sandbox Code Playgroud)
我得到的例外情况:
{
"Output": {
"__type": "com.amazon.coral.service#UnknownOperationException",
"message": null
},
"Version": "1.0"
}
Run Code Online (Sandbox Code Playgroud) rest httprequest amazon-web-services amazon-machine-learning
在 Kibana 图表中,我想过滤以字符串开头的所有 url CANCELLED
,因此我编写了一个正则表达式:^CANCELLED.*
但是当我在“发现”选项卡中使用过滤器时,我注意到过滤器无法正常工作,因为它也接受CANCELLED
url 内带有短语的 url。
是因为 Kibana 正则表达式使用脱字符号以外的其他字符作为字符串的开头吗?
我正在将我的 API 从 Swagger 2.0 迁移到 OpenAPI 3.0。在 DTO 中,我有一个指定为字节数组的字段。DTO 的 Swagger 定义:
Job:
type: object
properties:
body:
type: string
format: binary
Run Code Online (Sandbox Code Playgroud)
使用上面的定义,swagger 代码生成器生成一个接受byte[]
数组作为主体字段的对象new Job().setBody(new byte[1])
。
将 API 定义转换为 OpenAPI 后,该对象的定义保持不变,但 openapi 代码生成器现在需要org.springframework.core.io.Resource
而不是byte[]
( new Job().setBody(org.springframework.core.io.Resource)
)。在我的代码中有一些地方我必须序列化 Job 对象,但它不再可能,因为Resource
没有实现可序列化。
作为一种解决方法,我将类型更改为object
:
Job:
type: object
properties:
body:
type: object
Run Code Online (Sandbox Code Playgroud)
现在我必须将身体投射到String
然后转换到byte[]
任何地方,我宁愿byte[]
像以前一样拥有类型。
如何指定类型为byte[]
使用 OpenAPI 3.0?
每次我使用Spring Tool Suite启动新的Spring Boot项目时,Spring Starter Project
我都可以使用GUI添加依赖项,如下面的屏幕截图所示.
在GUI中选择依赖项非常方便.但有时我会忘记添加一些依赖项并且必须pom.xml
手动添加它们.
是否可以使用GUI以与Spring Starter Project
项目创建后的配置相同的方式添加新的依赖项?
我正在尝试使用AWS SAM CLI
命令构建Lambda应用程序:
sam build --template C:/MyProject/template.yaml --build-dir C:/MyProject/.aws-sam/build
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
构建失败
错误:不支持'java8'运行时
这是我的template.yaml
:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
AWS Serverless Application
Sample SAM Template for AWS Serverless Application
Globals:
Function:
Timeout: 20
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: target/HelloWorld-1.0.jar
Handler: helloworld.App::handleRequest
Runtime: java8
Environment:
Variables:
PARAM1: VALUE
Events:
HelloWorld:
Type: Api
Properties:
Path: /hello
Method: get
Run Code Online (Sandbox Code Playgroud)
这是一个Intellij
使用AWS Toolkit
插件制作的示例项目,我已经安装了SAM CLI
版本0.9.0
和jdk1.8.0_191
(我尝试过不同的版本,但它没有用),在项目的GitHub我可以看到java 8
支持:
[ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spring JDBCTemplate从Oracle DB获取一些数据:
String query = "SELECT * FROM snow.ar_incident WHERE ROWNUM < 10";
Map<String, List<Attachment>> map = jdbcTemplate.query(query, new ResultSetExtractor<Map<String, List<Attachment>>>() {
@Override
public Map<String, List<Attachment>> extractData(ResultSet rs) throws SQLException, DataAccessException {
Map<String, List<Attachment>> map = new HashMap<>();
//Mapping results to map
return map;
}
});
Run Code Online (Sandbox Code Playgroud)
但我总是只为ar_incidient
表格获得一个例外:
引起:org.springframework.jdbc.BadSqlGrammarException:StatementCallback; 错误的SQL语法[SELECT*from snow.ar_incident WHERE ROWNUM <10]; 嵌套异常是java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在
此代码适用于其他表格,但不适用于此表格.我还尝试使用核心Java sql连接从此表中获取数据:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(connString, user, pass);
Statement stmt=con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from snow.ar_incident WHERE ROWNUM < 10");
Run Code Online (Sandbox Code Playgroud)
它在没有问题的情况下工作,在SQL …
我需要在 URL 中包含一个斜杠来访问 RabbitMQ API,我正在尝试使用WebClient
以下方法获取数据:
WebClient.builder()
.baseUrl("https://RABBIT_HOSTNAME/api/queues/%2F/QUEUE_NAME")
.build()
.get().exchange();
Run Code Online (Sandbox Code Playgroud)
当我替换为时/
,%2F
我可以在%2F
已更改为的请求描述符中看到%252F
,因此我没有找到响应。
我尝试了以下选项:
• "\\/"
- WebClient 更改为%5C
但 Rabbit 无法正确解释并返回 404。
• "%5C"
- WebClient 更改为%255C
,Rabbit 返回 404。
如何%2F
使用 WebClient保留url?
java ×5
spring ×5
spring-boot ×3
maven ×2
openapi ×2
apache-kafka ×1
aws-cli ×1
aws-lambda ×1
aws-sam ×1
eclipse ×1
httprequest ×1
jdbctemplate ×1
kibana ×1
oracle ×1
python ×1
python-3.x ×1
regression ×1
rest ×1
spline ×1
spring-kafka ×1
swagger ×1