Object type can contain different scalar types, objects and even inner arrays. The most simple types can be used almost everywhere, the more complex types can't.
- Object types can only be used has a part of a body;
// a simple example
Types.Object({
properties: {
name: Types.String() // at least one property should be provided
}
})
// a more complete declaration
Types.Object({
properties: {
username: Types.String(),
},
description: "My object description",
required: true,
nullable: true,
default: { username: "John Doe" }, // notice that the default is an object
example: { username: "John Doe" },
});
Types.Object({
properties: {
objectList: Types.Array({
arrayType: Types.Object({
properties: {
customer: Types.String({ description: "Customer Name" }),
},
description: "This is an array of customers",
}),
}),
},
description: "This is an example of an object with an array of objects",
required: false,
nullable: true, // you can send this object as a null (to unset it in a PUT request)
// default value, if none provided
default: { objectList: [{ customer: "John" }, { customer: "Alice" }] },
// example data
example: { objectList: [{ customer: "John" }, { customer: "Alice" }] },
});
Types.Object({
properties: {
innerObject: Types.Object({
properties: {
customer: Types.String({ description: "Customer Name" }),
},
description: "This is an inner object",
}),
},
description: "This is an example of an object with an inner object",
required: false,
nullable: true, // you can send this object as a null (to unset it in a PUT request)
// default value, if none provided
default: { innerObject: { customer: "John" } },
// example data
example: { innerObject: { customer: "John" } },
});