Search in sources :

Example 91 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project java-chassis by ServiceComb.

the class TestBodyProcessorCreator method testCreateNormal.

@Test
public void testCreateNormal() {
    ParamValueProcessorCreator creator = ParamValueProcessorCreatorManager.INSTANCE.findValue(BodyProcessorCreator.PARAMTYPE);
    BodyParameter param = new BodyParameter();
    ParamValueProcessor processor = creator.create(param, String.class);
    Assert.assertEquals(BodyProcessor.class, processor.getClass());
}
Also used : BodyParameter(io.swagger.models.parameters.BodyParameter) Test(org.junit.Test)

Example 92 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project java-chassis by ServiceComb.

the class TestBodyProcessorCreator method testCreateRawJson.

@Test
public void testCreateRawJson() {
    ParamValueProcessorCreator creator = ParamValueProcessorCreatorManager.INSTANCE.findValue(BodyProcessorCreator.PARAMTYPE);
    BodyParameter param = new BodyParameter();
    param.setVendorExtension(SwaggerConst.EXT_RAW_JSON_TYPE, true);
    ParamValueProcessor processor = creator.create(param, String.class);
    Assert.assertEquals(RawJsonBodyProcessor.class, processor.getClass());
}
Also used : BodyParameter(io.swagger.models.parameters.BodyParameter) Test(org.junit.Test)

Example 93 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project java-chassis by ServiceComb.

the class TestApiImplicitParams method testBody.

@Test
public void testBody() {
    Swagger swagger = SwaggerGenerator.generate(ApiImplicitParamsAnnotation.class);
    Path path = swagger.getPaths().get("/testBody");
    Operation operation = path.getOperations().get(0);
    BodyParameter parameter = (BodyParameter) operation.getParameters().get(0);
    Assert.assertEquals("body", parameter.getName());
    Assert.assertEquals("User", ((RefModel) parameter.getSchema()).getSimpleRef());
}
Also used : Path(io.swagger.models.Path) Swagger(io.swagger.models.Swagger) Operation(io.swagger.models.Operation) BodyParameter(io.swagger.models.parameters.BodyParameter) Test(org.junit.Test)

Example 94 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project java-chassis by ServiceComb.

the class RestOperationMeta method correctFormBodyType.

/**
 * EdgeService cannot recognize the map type form body whose value type is String,
 * so there should be this additional setting.
 * @param parameter the swagger information of the parameter
 * @param type the resolved param type
 * @return the corrected param type
 */
private Type correctFormBodyType(Parameter parameter, Type type) {
    if (null != type || !(parameter instanceof BodyParameter)) {
        return type;
    }
    final BodyParameter bodyParameter = (BodyParameter) parameter;
    if (!(bodyParameter.getSchema() instanceof ModelImpl)) {
        return type;
    }
    final Property additionalProperties = ((ModelImpl) bodyParameter.getSchema()).getAdditionalProperties();
    if (additionalProperties instanceof StringProperty) {
        type = RestObjectMapperFactory.getRestObjectMapper().getTypeFactory().constructMapType(Map.class, String.class, String.class);
    }
    return type;
}
Also used : StringProperty(io.swagger.models.properties.StringProperty) BodyParameter(io.swagger.models.parameters.BodyParameter) ModelImpl(io.swagger.models.ModelImpl) StringProperty(io.swagger.models.properties.StringProperty) Property(io.swagger.models.properties.Property) FileProperty(io.swagger.models.properties.FileProperty) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map)

Example 95 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project java-chassis by ServiceComb.

the class AbstractOperationGenerator method fillBodyParameter.

protected void fillBodyParameter(Swagger swagger, Parameter parameter, Type type, List<Annotation> annotations) {
    // so strange, for bodyParameter, swagger return a new instance
    // that will cause lost some information
    // so we must merge them
    BodyParameter newBodyParameter = (BodyParameter) io.swagger.util.ParameterProcessor.applyAnnotations(swagger, parameter, type, annotations);
    // swagger missed enum data, fix it
    ModelImpl model = SwaggerUtils.getModelImpl(swagger, newBodyParameter);
    if (model != null) {
        Property property = ModelConverters.getInstance().readAsProperty(type);
        if (property instanceof StringProperty) {
            model.setEnum(((StringProperty) property).getEnum());
        }
    }
    // swagger 2.0 do not support NotBlank and NotEmpty annotations, fix it
    if (((JavaType) type).getBindings().getTypeParameters().isEmpty()) {
        convertAnnotationProperty(((JavaType) type).getRawClass());
    } else {
        ((JavaType) type).getBindings().getTypeParameters().stream().forEach(javaType -> convertAnnotationProperty(javaType.getRawClass()));
    }
    mergeBodyParameter((BodyParameter) parameter, newBodyParameter);
}
Also used : JavaType(com.fasterxml.jackson.databind.JavaType) StringProperty(io.swagger.models.properties.StringProperty) BodyParameter(io.swagger.models.parameters.BodyParameter) ModelImpl(io.swagger.models.ModelImpl) StringProperty(io.swagger.models.properties.StringProperty) Property(io.swagger.models.properties.Property)

Aggregations

BodyParameter (io.swagger.models.parameters.BodyParameter)96 Test (org.testng.annotations.Test)42 Parameter (io.swagger.models.parameters.Parameter)34 Model (io.swagger.models.Model)30 Operation (io.swagger.models.Operation)28 QueryParameter (io.swagger.models.parameters.QueryParameter)26 ModelImpl (io.swagger.models.ModelImpl)23 Swagger (io.swagger.models.Swagger)23 PathParameter (io.swagger.models.parameters.PathParameter)23 RefModel (io.swagger.models.RefModel)22 ArrayModel (io.swagger.models.ArrayModel)21 Property (io.swagger.models.properties.Property)21 Path (io.swagger.models.Path)20 RefProperty (io.swagger.models.properties.RefProperty)19 StringProperty (io.swagger.models.properties.StringProperty)18 ArrayProperty (io.swagger.models.properties.ArrayProperty)13 HeaderParameter (io.swagger.models.parameters.HeaderParameter)12 Response (io.swagger.models.Response)10 SerializableParameter (io.swagger.models.parameters.SerializableParameter)10 ArrayList (java.util.ArrayList)9