我使用OpenAPI.NET来读取OpenAPI定义。该库能够读取版本2.0和3.0,但是对象结构适用于版本3.0。
我从版本2的PetStore示例中获得了一个定义:
"/pet" : {
"post" : {
"tags" : [ "pet" ],
"summary" : "Add a new pet to the store",
"operationId" : "addPet",
"consumes" : [ "application/json", "application/xml" ],
"produces" : [ "application/json", "application/xml" ],
"parameters" : [ {
"in" : "body",
"name" : "body",
"description" : "Pet object that needs to be added to the store",
"required" : true,
"schema" : {
"$ref" : "#/definitions/Pet"
}
} ],
"responses" : {
"405" : {
"description" : "Invalid input"
}
},
"security" : [ {
"petstore_auth" : [ "write:pets", "read:pets" ]
} ]
},
现在,我需要从主体参数获取模式。但是,OpenAPI.NET表示没有参数。另一方面,存在一个属性requestBody,该属性在Content中具有两个项目(每种媒体类型一个),并且这些项目在其MediaType中具有导致引用定义的Schema。
当我获得对OpenAPI的定义但没有成功时,我想问一下:这个映射正确吗?换句话说,是否已将OpenAPI(Swagger)2.0中的主体参数移至OpenAPI 3中的RequestBody,并且可以在Content中找到此参数的架构?