@groovy.util.logging.Slf4j class Reader extends java.lang.Object
Groovy annotation reader for OpenAPI
| Modifiers | Name | Description |
|---|---|---|
static class |
Reader.TypeAndFormat |
According to the https://swagger.io/docs/specification/data-models/data-types/ |
| Type | Name and description |
|---|---|
static java.lang.String |
DEFAULT_MIME |
static java.lang.String |
JSON_MIME |
grails.core.GrailsApplication |
application |
io.swagger.v3.oas.integration.api.OpenAPIConfiguration |
config |
| Type Params | Return Type | Name and description |
|---|---|---|
|
io.swagger.v3.oas.models.parameters.RequestBody |
buildActionCommandParameters(java.lang.String actionName, grails.core.GrailsControllerClass grailsControllerClass)Grails controller original action has an annotation "Action" with member "commandObjects" store action commands classes, we will build parameter schemas on these command class. |
|
java.util.Map<java.lang.String, io.swagger.v3.oas.models.media.Schema> |
buildClassProperties(java.lang.Class<?> aClass) |
|
io.swagger.v3.oas.models.tags.Tag |
buildControllerDoc(grails.core.GrailsControllerClass grailsControllerClass) |
|
static void |
buildEnumDescription(java.lang.Class aClass, io.swagger.v3.oas.models.media.Schema schema) |
|
static java.util.List |
buildEnumItems(java.lang.Class enumClass)Use enum id as property value |
|
java.lang.Object |
buildPathItem(io.swagger.v3.oas.models.Operation operation, java.lang.String actionName, grails.core.GrailsControllerClass controllerArtifact, grails.web.mapping.UrlMappingsHolder urlMappingsHolder) |
|
io.swagger.v3.oas.models.media.Schema |
buildSchema(java.lang.Class aClass, java.lang.reflect.Type genericType = null)Build Schema from command class or domain class |
|
static java.lang.String |
buildSchemaDescription(java.lang.Class aClass) |
|
static Reader.TypeAndFormat |
buildType(java.lang.Class aClass)Build OASv3 type and format from class. |
|
static io.swagger.v3.oas.models.media.Schema |
cloneSchema(io.swagger.v3.oas.models.media.Schema schema) |
|
void |
cutReferencingCycle(io.swagger.v3.oas.models.media.Schema schema) |
|
static java.lang.String |
getRef(io.swagger.v3.oas.models.media.Schema schema) |
|
static io.swagger.v3.oas.models.media.Schema |
getSchemaBy$Ref(io.swagger.v3.oas.models.OpenAPI openAPI, java.lang.String ref) |
|
io.swagger.v3.oas.models.media.Schema |
getSchemaFromOpenAPI(java.lang.Class aClass, boolean clone = true)Get a clone schema from openApi |
|
static boolean |
isCommandClass(java.lang.Class<?> aClass) |
|
boolean |
isCycleReferencing(io.swagger.v3.oas.models.media.Schema schema, java.lang.String targetName = null)check if schema is in properties referencing cycle |
|
java.lang.Object |
processApiDocAnnotation(java.lang.Class controllerClass) |
|
java.lang.Object |
processClosure(java.lang.Class closureClass, AnnotationBuilder builder) |
|
io.swagger.v3.oas.models.OpenAPI |
read(java.util.Set<java.lang.Class<?>> classes, java.util.Map<java.lang.String, java.lang.Object> resources)Read controller classes, build OpenAPI object. |
|
static java.lang.String |
schemaNameFromClass(java.lang.Class aClass) |
|
void |
setConfiguration(io.swagger.v3.oas.integration.api.OpenAPIConfiguration openApiConfiguration) |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Grails controller original action has an annotation "Action" with member "commandObjects" store action commands classes, we will build parameter schemas on these command class.
actionName - name of the action to buildgrailsControllerClass - action belonged grails controller classUse enum id as property value
Build Schema from command class or domain class
aClass - command class, domain classgenericType - the genericType of the aClass, such as a CollectionBuild OASv3 type and format from class.
Get a clone schema from openApi
aClass - class to find in openApiclone - true means clone the schema object if it is found in openApicheck if schema is in properties referencing cycle
schema - Schema or ArraySchemaRead controller classes, build OpenAPI object.
classes - controller classes or any classes withresources - TODO Understanding what it is