module OpenAPI::Generator::Serializable
Overview
The Serializable module automatically generates an OpenAPI Operations representation of the class or struct when extended.
Example
struct Model
extend OpenAPI::Generator::Serializable
include JSON::Serializable
property string : String
property opt_string : String?
@[OpenAPI::Field(ignore: true)]
property ignored : Nil
@[OpenAPI::Field(type: String)]
@cast : Int32
def cast
@cast.to_s
end
end
puts Model.to_openapi_schema.to_pretty_json
# => {
# "required": [
# "string",
# "cast"
# ],
# "type": "object",
# "properties": {
# "string": {
# "type": "string"
# },
# "opt_string": {
# "type": "string"
# },
# "cast": {
# "type": "string"
# }
# }
# }
Usage
Extending this module adds a self.to_openapi_schema that returns an OpenAPI representation
inferred from the shape of the class or struct.
The class name is also registered as a global component schema
and will be available for referencing from any Controller annotation from a reference object.
See: OpenAPI::Generator::Controller::Schema.ref
NOTE Calling #to_openapi_schema programatically is unnecessary.
The Generator will take care of serialization while producing the openapi yaml file.
Defined in:
openapi-generator/serializable.crConstant Summary
-
SERIALIZABLE_CLASSES =
[] of Class -
A list of all serializable subclasses.
Instance Method Summary
-
#to_openapi_schema
Serialize the class into an
OpenAPI::Schemarepresentation.
Macro Summary
Instance Method Detail
Serialize the class into an OpenAPI::Schema representation.
Check the swagger documentation for more details