Search in sources :

Example 1 with Api

use of io.swagger.annotations.Api in project swagger-core by swagger-api.

the class ServletReaderExtension method applyConsumes.

@Override
public void applyConsumes(ReaderContext context, Operation operation, Method method) {
    final List<String> consumes = new ArrayList<String>();
    final ApiOperation apiOperation = ReflectionUtils.getAnnotation(method, ApiOperation.class);
    if (apiOperation != null) {
        consumes.addAll(parseStringValues(apiOperation.consumes()));
    }
    if (consumes.isEmpty()) {
        final Api apiAnnotation = context.getCls().getAnnotation(Api.class);
        if (apiAnnotation != null) {
            consumes.addAll(parseStringValues(apiAnnotation.consumes()));
        }
        consumes.addAll(context.getParentConsumes());
    }
    for (String consume : consumes) {
        operation.consumes(consume);
    }
}
Also used : ArrayList(java.util.ArrayList) ApiOperation(io.swagger.annotations.ApiOperation) Api(io.swagger.annotations.Api)

Example 2 with Api

use of io.swagger.annotations.Api in project swagger-core by swagger-api.

the class ServletReaderExtension method getPath.

@Override
public String getPath(ReaderContext context, Method method) {
    final Api apiAnnotation = context.getCls().getAnnotation(Api.class);
    final ApiOperation apiOperation = ReflectionUtils.getAnnotation(method, ApiOperation.class);
    final String operationPath = apiOperation == null ? null : apiOperation.nickname();
    return PathUtils.collectPath(context.getParentPath(), apiAnnotation == null ? null : apiAnnotation.value(), method.getName());
}
Also used : ApiOperation(io.swagger.annotations.ApiOperation) Api(io.swagger.annotations.Api)

Example 3 with Api

use of io.swagger.annotations.Api in project swagger-core by swagger-api.

the class ServletReaderExtension method applySecurityRequirements.

@Override
public void applySecurityRequirements(ReaderContext context, Operation operation, Method method) {
    final List<SecurityRequirement> securityRequirements = new ArrayList<SecurityRequirement>();
    final ApiOperation apiOperation = ReflectionUtils.getAnnotation(method, ApiOperation.class);
    final Api apiAnnotation = context.getCls().getAnnotation(Api.class);
    if (apiOperation != null) {
        securityRequirements.addAll(parseAuthorizations(apiOperation.authorizations()));
    }
    if (securityRequirements.isEmpty() && apiAnnotation != null) {
        securityRequirements.addAll(parseAuthorizations(apiAnnotation.authorizations()));
    }
    for (SecurityRequirement securityRequirement : securityRequirements) {
        operation.security(securityRequirement);
    }
}
Also used : ArrayList(java.util.ArrayList) ApiOperation(io.swagger.annotations.ApiOperation) Api(io.swagger.annotations.Api) SecurityRequirement(io.swagger.models.SecurityRequirement)

Example 4 with Api

use of io.swagger.annotations.Api in project swagger-core by swagger-api.

the class ServletReaderExtension method applyProduces.

@Override
public void applyProduces(ReaderContext context, Operation operation, Method method) {
    final List<String> produces = new ArrayList<String>();
    final ApiOperation apiOperation = ReflectionUtils.getAnnotation(method, ApiOperation.class);
    if (apiOperation != null) {
        produces.addAll(parseStringValues(apiOperation.produces()));
    }
    if (produces.isEmpty()) {
        final Api apiAnnotation = context.getCls().getAnnotation(Api.class);
        if (apiAnnotation != null) {
            produces.addAll(parseStringValues(apiAnnotation.produces()));
        }
        produces.addAll(context.getParentProduces());
    }
    for (String produce : produces) {
        operation.produces(produce);
    }
}
Also used : ArrayList(java.util.ArrayList) ApiOperation(io.swagger.annotations.ApiOperation) Api(io.swagger.annotations.Api)

Example 5 with Api

use of io.swagger.annotations.Api in project swagger-core by swagger-api.

the class Reader method getSubResource.

protected Class<?> getSubResource(Method method) {
    final Class<?> rawType = method.getReturnType();
    final Class<?> type;
    if (Class.class.equals(rawType)) {
        type = getClassArgument(method.getGenericReturnType());
        if (type == null) {
            return null;
        }
    } else {
        type = rawType;
    }
    if (type.getAnnotation(Api.class) != null) {
        return type;
    }
    // For sub-resources that are not annotated with  @Api, look for any HttpMethods.
    for (Method m : type.getMethods()) {
        if (extractOperationMethod(null, m, null) != null) {
            return type;
        }
    }
    return null;
}
Also used : Api(io.swagger.annotations.Api) Method(java.lang.reflect.Method) HttpMethod(javax.ws.rs.HttpMethod) AnnotatedMethod(com.fasterxml.jackson.databind.introspect.AnnotatedMethod)

Aggregations

Api (io.swagger.annotations.Api)34 ApiOperation (io.swagger.annotations.ApiOperation)29 ApiResponse (io.swagger.annotations.ApiResponse)16 ApiResponses (io.swagger.annotations.ApiResponses)16 GET (javax.ws.rs.GET)16 Path (javax.ws.rs.Path)15 PathParam (javax.ws.rs.PathParam)15 Response (javax.ws.rs.core.Response)15 ApiParam (io.swagger.annotations.ApiParam)14 ArrayList (java.util.ArrayList)12 Inject (javax.inject.Inject)12 QueryParam (javax.ws.rs.QueryParam)12 URI (java.net.URI)11 Consumer (java.util.function.Consumer)11 PUT (javax.ws.rs.PUT)11 Context (javax.ws.rs.core.Context)11 Paths (java.nio.file.Paths)10 HttpServletRequest (javax.servlet.http.HttpServletRequest)10 DELETE (javax.ws.rs.DELETE)10 Produces (javax.ws.rs.Produces)10