Annotation Type Schema
The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is based on the JSON Schema Specification Draft 4 and uses a predefined subset of it. On top of this subset, there are extensions provided by this specification to allow for more complete documentation.
Used to populate the auto-generated Swagger documentation and UI for server-side
Also used to define OpenAPI schema information for POJOs serialized through OpenApiSerializer
and parsed through OpenApiParser
.
Examples:
See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionString[]
default field of the Swagger Schema Object.String[]
enum field of the Swagger Schema Object.$ref field of the Swagger Schema Object.String[]
additionalProperties field of the Swagger Schema Object.boolean
Synonym forallowEmptyValue()
.String[]
allOf field of the Swagger Schema Object.boolean
allowEmptyValue field of the Swagger Parameter Object.Synonym forcollectionFormat()
.collectionFormat field.String[]
Synonym fordescription()
.String[]
description field of the Swagger Schema Object.String[]
Synonym for_default()
.discriminator field of the Swagger Schema Object.String[]
Synonym for_enum()
.boolean
Synonym forexclusiveMaximum()
.boolean
Synonym forexclusiveMinimum()
.boolean
exclusiveMaximum field of the Swagger Schema Object.boolean
exclusiveMinimum field of the Swagger Schema Object.externalDocs field of the Swagger Schema Object.Synonym forformat()
.format field of the Swagger Schema Object.boolean
Specifies that schema information for this part should not be shown in the generated Swagger documentation.items field of the Swagger Schema Object.Synonym formaximum()
.long
Synonym formaxItems()
.maximum field of the Swagger Schema Object.long
maxItems field of the Swagger Schema Object.long
Synonym formaxLength()
.long
maxLength field of the Swagger Schema Object.long
Synonym formaxProperties()
.long
maxProperties field of the Swagger Schema Object.Synonym forminimum()
.long
Synonym forminItems()
.minimum field of the Swagger Schema Object.long
minItems field of the Swagger Schema Object.long
Synonym forminLength()
.long
minLength field of the Swagger Schema Object.long
Synonym forminProperties()
.long
minProperties field of the Swagger Schema Object.Synonym formultipleOf()
.multipleOf field of the Swagger Schema Object.String[]
Dynamically apply this annotation to the specified classes/methods/fields.Class<?>[]
Dynamically apply this annotation to the specified classes.Synonym forpattern()
.pattern field of the Swagger Schema Object.String[]
properties field of the Swagger Schema Object.boolean
Synonym forrequired()
.boolean
readOnly field of the Swagger Schema Object.boolean
required field of the Swagger Schema Object.boolean
Synonym forreadOnly()
.boolean
Synonym forskipIfEmpty()
.boolean
Skips this value during serialization if it's an empty string or empty collection/array.Synonym fortype()
.title field of the Swagger Schema Object.type field of the Swagger Schema Object.boolean
Synonym foruniqueItems()
.boolean
uniqueItems field of the Swagger Schema Object.String[]
xml field of the Swagger Schema Object.
-
Element Details
-
_default
default field of the Swagger Schema Object.Declares the value of the parameter that the server will use if none is provided, for example a "count" to control the number of results per page might default to 100 if not supplied by the client in the request.
(Note: "default" has no meaning for required parameters.)Additionally, this value is used to create instances of POJOs that are then serialized as language-specific examples in the generated Swagger documentation if the examples are not defined in some other way.
The format of this value is a string.
Multiple lines are concatenated with newlines.Examples:
public Order placeOrder(@Header ("X-PetId" )@Schema (_default="100" )long petId ,@Header ("X-AdditionalInfo" )@Schema (format="uon" , _default="(rushOrder=false)" ) AdditionalInfoadditionalInfo ,@Header ("X-Flags" )@Schema (collectionFormat="uon" , _default="@(new-customer)" ) String[]flags ) {...}Used for:
- Server-side schema-based parsing.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing.
- Returns:
- The annotation value.
- Default:
- {}
-
_enum
enum field of the Swagger Schema Object.If specified, the input validates successfully if it is equal to one of the elements in this array.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).The format is either individual values or a comma-delimited list.
Multiple lines are concatenated with newlines.Examples:
// Comma-delimited list public Collection<Pet> findPetsByStatus(@Header ("X-Status" )@Schema (_enum="AVAILABLE,PENDING,SOLD" ) PetStatusstatus ) {...}Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- {}
-
$ref
$ref field of the Swagger Schema Object.A JSON reference to the schema definition.
Notes:
- The format is a JSON Reference.
- Returns:
- The annotation value.
- Default:
- ""
-
additionalProperties
additionalProperties field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- {}
-
The format is a Swagger object.
-
allOf
allOf field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- {}
-
The format is a Swagger object.
-
aev
boolean aevSynonym forallowEmptyValue()
.- Returns:
- The annotation value.
- Default:
- false
-
allowEmptyValue
boolean allowEmptyValueallowEmptyValue field of the Swagger Parameter Object.Sets the ability to pass empty-valued heaver values.
Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
Note: This is technically only valid for either query or formData parameters, but support is provided anyway for backwards compatability.
- Returns:
- The annotation value.
- Default:
- false
-
cf
Synonym forcollectionFormat()
.- Returns:
- The annotation value.
- Default:
- ""
-
collectionFormat
collectionFormat field.Note that this field isn't part of the Swagger 2.0 specification, but the specification does not specify how items are supposed to be represented.
Determines the format of the array if
type "array" is used.
Can only be used iftype is"array" .Static strings are defined in
CollectionFormatType
.Note that for collections/arrays parameters with POJO element types, the input is broken into a string array before being converted into POJO elements.
Used for:
- Server-side schema-based parsing.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing.
Note that for collections/arrays parameters with POJO element types, the input is broken into a string array before being converted into POJO elements.
"csv" (default) - Comma-separated values (e.g."foo,bar" )."ssv" - Space-separated values (e.g."foo bar" )."tsv" - Tab-separated values (e.g."foo\tbar" )."pipes - Pipe-separated values (e.g."foo|bar" )."multi" - Corresponds to multiple parameter instances instead of multiple values for a single instance (e.g."foo=bar&foo=baz" )."uon" - UON notation (e.g."@(foo,bar)" ).
- Returns:
- The annotation value.
- Default:
- ""
-
d
Synonym fordescription()
.- Returns:
- The annotation value.
- Default:
- {}
-
description
description field of the Swagger Schema Object.A brief description of the body. This could contain examples of use.
Examples:
// Used on parameter @RestPost public void addPet(@Content @Schema (description="Pet object to add to the store" ) Petinput ) {...}// Used on class @RestPost public void addPet(Petinput ) {...}@Content @Schema (description="Pet object to add to the store" )public class Pet {...}Notes:
-
The format is plain text.
Multiple lines are concatenated with newlines. -
Supports SVL Variables (e.g.
"$L{my.localized.variable}" ) for the swagger generator.
- Returns:
- The annotation value.
- Default:
- {}
-
The format is plain text.
-
df
Synonym for_default()
.- Returns:
- The annotation value.
- Default:
- {}
-
discriminator
discriminator field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- ""
-
The format is a Swagger object.
-
e
Synonym for_enum()
.- Returns:
- The annotation value.
- Default:
- {}
-
emax
boolean emaxSynonym forexclusiveMaximum()
.- Returns:
- The annotation value.
- Default:
- false
-
emin
boolean eminSynonym forexclusiveMinimum()
.- Returns:
- The annotation value.
- Default:
- false
-
exclusiveMaximum
boolean exclusiveMaximumexclusiveMaximum field of the Swagger Schema Object.Defines whether the maximum is matched exclusively.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"integer" ,"number" .
Iftrue , must be accompanied withmaximum .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- false
-
exclusiveMinimum
boolean exclusiveMinimumexclusiveMinimum field of the Swagger Schema Object.Defines whether the minimum is matched exclusively.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"integer" ,"number" .
Iftrue , must be accompanied withminimum .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- false
-
externalDocs
externalDocs field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- @org.apache.juneau.annotation.ExternalDocs
-
The format is a Swagger object.
-
f
Synonym forformat()
.- Returns:
- The annotation value.
- Default:
- ""
-
format
format field of the Swagger Schema Object.The extending format for the previously mentioned parameter type.
Static strings are defined in
FormatType
.Examples:
// Used on parameter @RestPut public void setAge(@Content @Schema (type="integer" , format="int32" ) Stringinput ) {...}Used for:
- Server-side schema-based parsing.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing.
-
"int32" - Signed 32 bits.
Only valid with type"integer" . -
"int64" - Signed 64 bits.
Only valid with type"integer" . -
"float" - 32-bit floating point number.
Only valid with type"number" . -
"double" - 64-bit floating point number.
Only valid with type"number" . -
"byte" - BASE-64 encoded characters.
Only valid with type"string" .
Parameters of type POJO convertible from string are converted after the string has been decoded. -
"binary" - Hexadecimal encoded octets (e.g."00FF" ).
Only valid with type"string" .
Parameters of type POJO convertible from string are converted after the string has been decoded. -
"date" - An RFC3339 full-date.
Only valid with type"string" . -
"date-time" - An RFC3339 date-time.
Only valid with type"string" . -
"password" - Used to hint UIs the input needs to be obscured.
This format does not affect the serialization or parsing of the parameter. -
"uon" - UON notation (e.g."(foo=bar,baz=@(qux,123))" ).
Only valid with type"object" .
If not specified, then the input is interpreted as plain-text and is converted to a POJO directly.
Notes:
- The format is plain text.
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
ignore
boolean ignoreSpecifies that schema information for this part should not be shown in the generated Swagger documentation.- Returns:
- The annotation value.
- Default:
- false
-
items
items field of the Swagger Schema Object.Describes the type of items in the array.
Required if
type is"array" .
Can only be used iftype is"array" .Used for:
- Server-side schema-based parsing and parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing and serializing validation.
- Returns:
- The annotation value.
- Default:
- @org.apache.juneau.annotation.Items
-
max
Synonym formaximum()
.- Returns:
- The annotation value.
- Default:
- ""
-
maxi
long maxiSynonym formaxItems()
.- Returns:
- The annotation value.
- Default:
- -1L
-
maximum
maximum field of the Swagger Schema Object.Defines the maximum value for a parameter of numeric types.
The value must be a valid JSON number.If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"integer" ,"number" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- ""
-
maxItems
long maxItemsmaxItems field of the Swagger Schema Object.An array or collection is valid if its size is less than, or equal to, the value of this keyword.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"array" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- -1L
-
maxl
long maxlSynonym formaxLength()
.- Returns:
- The annotation value.
- Default:
- -1L
-
maxLength
long maxLengthmaxLength field of the Swagger Schema Object.A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword.
The length of a string instance is defined as the number of its characters as defined by RFC 4627.
The value-1 is always ignored.If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"string" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- -1L
-
maxp
long maxpSynonym formaxProperties()
.- Returns:
- The annotation value.
- Default:
- -1L
-
maxProperties
long maxPropertiesmaxProperties field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- -1L
-
The format is a Swagger object.
-
min
Synonym forminimum()
.- Returns:
- The annotation value.
- Default:
- ""
-
mini
long miniSynonym forminItems()
.- Returns:
- The annotation value.
- Default:
- -1L
-
minimum
minimum field of the Swagger Schema Object.Defines the minimum value for a parameter of numeric types.
The value must be a valid JSON number.If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"integer" ,"number" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- ""
-
minItems
long minItemsminItems field of the Swagger Schema Object.An array or collection is valid if its size is greater than, or equal to, the value of this keyword.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"array" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- -1L
-
minl
long minlSynonym forminLength()
.- Returns:
- The annotation value.
- Default:
- -1L
-
minLength
long minLengthminLength field of the Swagger Schema Object.A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword.
The length of a string instance is defined as the number of its characters as defined by RFC 4627.
The value-1 is always ignored.If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"string" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- -1L
-
minp
long minpSynonym forminProperties()
.- Returns:
- The annotation value.
- Default:
- -1L
-
minProperties
long minPropertiesminProperties field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- -1L
-
The format is a Swagger object.
-
mo
Synonym formultipleOf()
.- Returns:
- The annotation value.
- Default:
- ""
-
multipleOf
multipleOf field of the Swagger Schema Object.A numeric instance is valid if the result of the division of the instance by this keyword's value is an integer.
The value must be a valid JSON number.If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Only allowed for the following types:
"integer" ,"number" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- ""
-
on
Dynamically apply this annotation to the specified classes/methods/fields.Used in conjunction with
BeanContext.Builder.applyAnnotations(Class...)
to dynamically apply an annotation to an existing class/method/field. It is ignored when the annotation is applied directly to classes/methods/fields.Valid patterns:
- Classes:
- Fully qualified:
"com.foo.MyClass"
- Fully qualified inner class:
"com.foo.MyClass$Inner1$Inner2"
- Simple:
"MyClass"
- Simple inner:
"MyClass$Inner1$Inner2" "Inner1$Inner2" "Inner2"
- Fully qualified:
- Methods:
- Fully qualified with args:
"com.foo.MyClass.myMethod(String,int)" "com.foo.MyClass.myMethod(java.lang.String,int)" "com.foo.MyClass.myMethod()"
- Fully qualified:
"com.foo.MyClass.myMethod"
- Simple with args:
"MyClass.myMethod(String,int)" "MyClass.myMethod(java.lang.String,int)" "MyClass.myMethod()"
- Simple:
"MyClass.myMethod"
- Simple inner class:
"MyClass$Inner1$Inner2.myMethod" "Inner1$Inner2.myMethod" "Inner2.myMethod"
- Fully qualified with args:
- Fields:
- Fully qualified:
"com.foo.MyClass.myField"
- Simple:
"MyClass.myField"
- Simple inner class:
"MyClass$Inner1$Inner2.myField" "Inner1$Inner2.myField" "Inner2.myField"
- Fully qualified:
- A comma-delimited list of anything on this list.
See Also:
- Returns:
- The annotation value.
- Default:
- {}
- Classes:
-
onClass
Dynamically apply this annotation to the specified classes.Identical to
on()
except allows you to specify class objects instead of a strings.See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
p
Synonym forpattern()
.- Returns:
- The annotation value.
- Default:
- ""
-
pattern
pattern field of the Swagger Schema Object.A string input is valid if it matches the specified regular expression pattern.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Example:
@RestPut public void doPut(@Content @Schema (pattern="/\\w+\\.\\d+/" ) Stringinput ) {...}Only allowed for the following types:
"string" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- ""
-
properties
properties field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- {}
-
The format is a Swagger object.
-
r
boolean rSynonym forrequired()
.- Returns:
- The annotation value.
- Default:
- false
-
readOnly
boolean readOnlyreadOnly field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- false
-
The format is a Swagger object.
-
required
boolean requiredrequired field of the Swagger Schema Object.Determines whether the parameter is mandatory.
If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).Examples:
// Used on parameter @RestPost public void addPet(@Content @Schema (required=true ) Petinput ) {...}// Used on class @RestPost public void addPet(Petinput ) {...}@Content (required=true )public class Pet {...}Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- false
-
ro
boolean roSynonym forreadOnly()
.- Returns:
- The annotation value.
- Default:
- false
-
sie
boolean sieSynonym forskipIfEmpty()
.- Returns:
- The annotation value.
- Default:
- false
-
skipIfEmpty
boolean skipIfEmptySkips this value during serialization if it's an empty string or empty collection/array.Note that
null values are already ignored.Used for:
- Client-side schema-based serializing.
- Returns:
- The annotation value.
- Default:
- false
-
t
Synonym fortype()
.- Returns:
- The annotation value.
- Default:
- ""
-
title
- Returns:
- The annotation value.
- Default:
- ""
-
type
type field of the Swagger Schema Object.The type of the parameter.
Examples:
// Used on parameter @RestPost public void addPet(@Content @Schema (type="object" ) Petinput ) {...}// Used on class @RestPost public void addPet(Petinput ) {...}@Content @Schema (type="object" )public class Pet {...}Used for:
- Server-side schema-based parsing.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing.
-
"string"
Parameter must be a string or a POJO convertible from a string. -
"number"
Parameter must be a number primitive or number object.
If parameter isObject , creates either aFloat orDouble depending on the size of the number. -
"integer"
Parameter must be a integer/long primitive or integer/long object.
If parameter isObject , creates either aShort ,Integer , orLong depending on the size of the number. -
"boolean"
Parameter must be a boolean primitive or object. -
"array"
Parameter must be an array or collection.
Elements must be strings or POJOs convertible from strings.
If parameter isObject , creates anJsonList
. -
"object"
Parameter must be a map or bean.
If parameter isObject , creates anJsonMap
.
Note that this is an extension of the OpenAPI schema as Juneau allows for arbitrarily-complex POJOs to be serialized as HTTP parts. -
"file"
This type is currently not supported.
Notes:
- Static strings are defined in
ParameterType
.
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
ui
boolean uiSynonym foruniqueItems()
.- Returns:
- The annotation value.
- Default:
- false
-
uniqueItems
boolean uniqueItemsuniqueItems field of the Swagger Schema Object.If
true the input validates successfully if all of its elements are unique.If validation fails during serialization or parsing, the part serializer/parser will throw a
SchemaValidationException
.
On the client-side, this gets converted to aRestCallException which is thrown before the connection is made.
On the server-side, this gets converted to aBadRequest (400).If the parameter type is a subclass of
Set
, this validation is skipped (since a set can only contain unique items anyway).
Otherwise, the collection or array is checked for duplicate items.Only allowed for the following types:
"array" .Used for:
- Server-side schema-based parsing validation.
- Server-side generated Swagger documentation.
- Client-side schema-based serializing validation.
- Returns:
- The annotation value.
- Default:
- false
-
xml
xml field of the Swagger Schema Object.Notes:
-
The format is a Swagger object.
Multiple lines are concatenated with newlines.
- Returns:
- The annotation value.
- Default:
- {}
-
The format is a Swagger object.
-