All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.swagger.v3.jaxrs2.ext.OpenAPIExtension Maven / Gradle / Ivy

The newest version!
package io.swagger.v3.jaxrs2.ext;

import com.fasterxml.jackson.annotation.JsonView;
import io.swagger.v3.core.util.Configuration;
import io.swagger.v3.jaxrs2.ResolvedParameter;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.media.Schema;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public interface OpenAPIExtension {

    String extractOperationMethod(Method method, Iterator chain);

    ResolvedParameter extractParameters(List annotations, Type type, Set typesToSkip, Components components,
                                        javax.ws.rs.Consumes classConsumes, javax.ws.rs.Consumes methodConsumes, boolean includeRequestBody, JsonView jsonViewAnnotation, Iterator chain);

    /**
     * Decorates operation with additional vendor based extensions.
     *
     * @param operation the operation, build from swagger definition
     * @param method    the method for additional scan
     * @param chain     the chain with swagger extensions to process
     */
    void decorateOperation(Operation operation, Method method, Iterator chain);

    default void setOpenAPI31(boolean openapi31) {
        //todo: override me!
    }

    default void setSchemaResolution(Schema.SchemaResolution schemaResolution) {
        //todo: override me!
    }

    default void setConfiguration(Configuration configuration) {
        //todo: override me!
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy