我有由OpenAPI制作的带有Mybatis和Rest API的SpringBoot应用程序,这是我的swagger文件:
/api/v1/getdata:
get:
summary: ttttttt
tags:
- "API"
description: ttttttt
operationId: getdata
parameters:
- name: sap
in: header
required: true
description: ttttttt
schema:
type: string
- name: created
in: header
required: true
description: ttttttt
schema:
type: string
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MyResponse'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/MyResponse'
components:
schemas:
MyResponse:
description: ttttttt
type: object
properties:
code:
description: ttttttt
type: string
body:
$ref: '#/components/schemas/MyMetaData'
MyMetaData:
description: ttttttt
type: object
properties:
id:
description: id
type: string
somedata:
description: ttttttt
$ref: '#/components/schemas/MyData'
MyData:
description: ttttttt
type: object
properties:
id:
description: id
type: string
group:
description: ttttttt
type: string
这是我的控制器代码:
@Override
public ResponseEntity<MyResponse> getdata(String sap, String created) {
MyResponse myResponse = new MyResponse();
try {
OffsetDateTime date = OffsetDateTime.parse(created, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
Optional<MyMetaData> optionalMetaData = Optional.ofNullable(this.MyMetaDataMapper.getdata(sap, date));
if (optionalMetaData.isPresent()) {
myResponse.setBody(optionalMetaData.get());
myResponse.setCode("OK");
}
return ResponseEntity.status(HttpStatus.OK).body(myResponse);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(myResponse);
}
}
以下是生成的模型:
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2022-03-01T12:24:46.999519+03:00")
public class MyMetaData {
@JsonProperty("id")
private String id = null;
@JsonProperty("somedata")
private MyData somedata = null;
public MyMetaData id(String id) {
this.id = id;
return this;
}
当我像这样使用time-MyData时,结果得到null:
somedata:
description: ttttttt
$ref: '#/components/schemas/MyData'
当一些数据是字符串类型时,我从数据库中获取一些正常数据。这里使用对象类型的正确方法是什么?
您共享的OpenAPI swagger文件有$ref:'#/组件/模式/MyData
',但组件
和模式
在MyData的路径中丢失。
按Open API留档应该是
components:
schemas:
User: # Schema name
type: object
properties:
id:
type: integer
format: int64
example: 1 # Property example
name:
type: string
example: New order # Property example
对于嵌套对象,已经有一个StackOverflow问题可能会有所帮助。Github问题。
你可以试试类似的
components:
schemas:
MyMetaData:
type: object
description: ttttttt
properties:
id:
description: id
type: string
somedata:
description: ttttttt
$ref: '#/components/schemas/MyData'
MyData:
type: object
description: ttttttt
properties:
id:
description: id
type: string
如果您仍然面临OpenAPI swagger的问题,您可以尝试SpringDoc。它支持OpenAPI 3
并轻松生成Swagger留档。您可以在网上找到很多示例。
示例:
本页包含内容: 嵌套类型实例 嵌套类型的引用 枚举类型常被用于实现特定类或结构体的功能。也能够在有多种变量类型的环境中,方便地定义通用类或结构体来使用,为了实现这种功能,Swift允许你定义嵌套类型,可以在枚举类型、类和结构体中定义支持嵌套的类型。 要在一个类型中嵌套另一个类型,将需要嵌套的类型的定义写在被嵌套类型的区域{}内,而且可以根据需要定义多级嵌套。 嵌套类型实例 下面这个例子定义了一个结
我正在寻找一种方法来返回嵌套在泛型类中的枚举类型。我的意思是: 换句话说,我的方法应该返回嵌套在泛型类型中的枚举,有没有办法在Java中实现这一点?
我正在努力返回嵌套在函数中的一个promise(或多个promise),该函数嵌套在函数中。 我认为最好通过查看代码来缠绕你的头,所以这里是:
实际上,我试图在我的代码中实现如此基本的东西。我有一个json文件。然后我想读取这个json文件并将其转换为Java对象。为了处理它,我使用了gson,但不知何故,它为嵌套对象返回null。 JSON: TestJSON: 最后,我尝试从json文件中读取它: 但是最后,当我试图到达时,它给出了null。有什么建议吗?
问题内容: 我有以下查询: 这将同时返回“匹配”对象(整个文档)和“ inner_hits”对象(嵌套在匹配内部)。 有没有办法让我只返回出现在“ inner_hits”结果中的匹配“查询”元素,而没有获取整个文档? 问题答案: 应该可以通过以下方式 在顶层 禁用source- field 来实现
我有以下对象初始化。它是RestfulService类的一部分。 它在类中使用了几次,但有不同的参数。例如。 更新... 我的尝试是这样的。这种工作。然而,它现在只映射到一个通用的LinkedList。忽略对象类型。