added parameter schemas
This commit is contained in:
@ -1,6 +1,5 @@
|
|||||||
package org.leafygreens.kompendium
|
package org.leafygreens.kompendium
|
||||||
|
|
||||||
import java.net.URI
|
|
||||||
import org.leafygreens.kompendium.models.OpenApiSpec
|
import org.leafygreens.kompendium.models.OpenApiSpec
|
||||||
|
|
||||||
class Kompendium {
|
class Kompendium {
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package org.leafygreens.kompendium.models
|
||||||
|
|
||||||
|
sealed class OpenApiSpecParameterSchema(
|
||||||
|
val type: String,
|
||||||
|
)
|
||||||
|
|
||||||
|
data class OpenApiSpecParameterSchemaArray<T: OpenApiSpecParameterSchema >(
|
||||||
|
val items: T
|
||||||
|
) : OpenApiSpecParameterSchema("array")
|
||||||
|
|
||||||
|
data class OpenApiSpecParameterSchemaString(
|
||||||
|
val default: String,
|
||||||
|
val `enum`: Set<String>? = null
|
||||||
|
) : OpenApiSpecParameterSchema("string")
|
@ -27,7 +27,10 @@ data class OpenApiSpecParameter(
|
|||||||
val description: String?,
|
val description: String?,
|
||||||
val required: Boolean = true,
|
val required: Boolean = true,
|
||||||
val deprecated: Boolean = false,
|
val deprecated: Boolean = false,
|
||||||
val allowEmptyValue: Boolean = false
|
val allowEmptyValue: Boolean = false,
|
||||||
|
val style: String? = null,
|
||||||
|
val explode: Boolean? = false,
|
||||||
|
val schema: OpenApiSpecParameterSchema? = null
|
||||||
) : OpenApiSpecReferencable()
|
) : OpenApiSpecReferencable()
|
||||||
|
|
||||||
data class OpenApiSpecRequest(
|
data class OpenApiSpecRequest(
|
||||||
|
@ -8,6 +8,9 @@ import org.leafygreens.kompendium.models.OpenApiSpecInfo
|
|||||||
import org.leafygreens.kompendium.models.OpenApiSpecInfoContact
|
import org.leafygreens.kompendium.models.OpenApiSpecInfoContact
|
||||||
import org.leafygreens.kompendium.models.OpenApiSpecInfoLicense
|
import org.leafygreens.kompendium.models.OpenApiSpecInfoLicense
|
||||||
import org.leafygreens.kompendium.models.OpenApiSpecMediaType
|
import org.leafygreens.kompendium.models.OpenApiSpecMediaType
|
||||||
|
import org.leafygreens.kompendium.models.OpenApiSpecParameter
|
||||||
|
import org.leafygreens.kompendium.models.OpenApiSpecParameterSchemaArray
|
||||||
|
import org.leafygreens.kompendium.models.OpenApiSpecParameterSchemaString
|
||||||
import org.leafygreens.kompendium.models.OpenApiSpecPathItem
|
import org.leafygreens.kompendium.models.OpenApiSpecPathItem
|
||||||
import org.leafygreens.kompendium.models.OpenApiSpecPathItemOperation
|
import org.leafygreens.kompendium.models.OpenApiSpecPathItemOperation
|
||||||
import org.leafygreens.kompendium.models.OpenApiSpecReferenceObject
|
import org.leafygreens.kompendium.models.OpenApiSpecReferenceObject
|
||||||
@ -139,6 +142,30 @@ object TestData {
|
|||||||
),
|
),
|
||||||
`x-codegen-request-body-name` = "body"
|
`x-codegen-request-body-name` = "body"
|
||||||
)
|
)
|
||||||
|
),
|
||||||
|
"/pet/findByStatus" to OpenApiSpecPathItem(
|
||||||
|
get = OpenApiSpecPathItemOperation(
|
||||||
|
tags = setOf("pet"),
|
||||||
|
summary = "Find Pets by status",
|
||||||
|
description = "Multiple status values can be provided with comma separated strings",
|
||||||
|
operationId = "findPetsByStatus",
|
||||||
|
parameters = listOf(
|
||||||
|
OpenApiSpecParameter(
|
||||||
|
name = "status",
|
||||||
|
`in` = "query",
|
||||||
|
description = "Status values that need to be considered for filter",
|
||||||
|
required = true,
|
||||||
|
style = "form",
|
||||||
|
explode = true,
|
||||||
|
schema = OpenApiSpecParameterSchemaArray(
|
||||||
|
items = OpenApiSpecParameterSchemaString(
|
||||||
|
default = "available",
|
||||||
|
`enum` = setOf("available", "pending", "sold")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -93,6 +93,33 @@
|
|||||||
} ],
|
} ],
|
||||||
"x-codegen-request-body-name" : "body"
|
"x-codegen-request-body-name" : "body"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"/pet/findByStatus" : {
|
||||||
|
"get" : {
|
||||||
|
"tags" : [ "pet" ],
|
||||||
|
"summary" : "Find Pets by status",
|
||||||
|
"description" : "Multiple status values can be provided with comma separated strings",
|
||||||
|
"operationId" : "findPetsByStatus",
|
||||||
|
"parameters" : [ {
|
||||||
|
"name" : "status",
|
||||||
|
"in" : "query",
|
||||||
|
"description" : "Status values that need to be considered for filter",
|
||||||
|
"required" : true,
|
||||||
|
"deprecated" : false,
|
||||||
|
"allowEmptyValue" : false,
|
||||||
|
"style" : "form",
|
||||||
|
"explode" : true,
|
||||||
|
"schema" : {
|
||||||
|
"items" : {
|
||||||
|
"default" : "available",
|
||||||
|
"enum" : [ "available", "pending", "sold" ],
|
||||||
|
"type" : "string"
|
||||||
|
},
|
||||||
|
"type" : "array"
|
||||||
|
}
|
||||||
|
} ],
|
||||||
|
"deprecated" : false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"security" : { },
|
"security" : { },
|
||||||
|
Reference in New Issue
Block a user