Search in sources :

Example 41 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.

the class ReaderTest method scanImplicitParam.

@Test(description = "scan implicit params")
public void scanImplicitParam() {
    Swagger swagger = getSwagger(ResourceWithImplicitParams.class);
    List<Parameter> params = swagger.getPath("/testString").getPost().getParameters();
    assertNotNull(params);
    assertEquals(params.size(), 7);
    assertEquals(params.get(0).getName(), "sort");
    assertEquals(params.get(0).getIn(), "query");
    PathParameter pathParam = (PathParameter) params.get(1);
    assertEquals(pathParam.getName(), "type");
    assertEquals(pathParam.getIn(), "path");
    assertEquals(pathParam.getEnum().size(), 3);
    assertEquals(pathParam.getType(), "string");
    HeaderParameter headerParam = (HeaderParameter) params.get(2);
    assertEquals(headerParam.getName(), "size");
    assertEquals(headerParam.getIn(), "header");
    assertEquals(headerParam.getMinimum(), new BigDecimal(1.0));
    FormParameter formParam = (FormParameter) params.get(3);
    assertEquals(formParam.getName(), "width");
    assertEquals(formParam.getIn(), "formData");
    assertEquals(formParam.getMaximum(), new BigDecimal(1.0));
    assertEquals(params.get(4).getName(), "width");
    assertEquals(params.get(4).getIn(), "formData");
    QueryParameter queryParam = (QueryParameter) params.get(5);
    assertEquals(queryParam.getName(), "height");
    assertEquals(queryParam.getIn(), "query");
    assertEquals(queryParam.getMinimum(), new BigDecimal(3.0));
    assertEquals(queryParam.getMaximum(), new BigDecimal(4.0));
    BodyParameter bodyParam = (BodyParameter) params.get(6);
    assertEquals(bodyParam.getName(), "body");
    assertEquals(bodyParam.getIn(), "body");
    assertTrue(bodyParam.getRequired());
}
Also used : QueryParameter(io.swagger.models.parameters.QueryParameter) Swagger(io.swagger.models.Swagger) FormParameter(io.swagger.models.parameters.FormParameter) PathParameter(io.swagger.models.parameters.PathParameter) Parameter(io.swagger.models.parameters.Parameter) QueryParameter(io.swagger.models.parameters.QueryParameter) HeaderParameter(io.swagger.models.parameters.HeaderParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) HeaderParameter(io.swagger.models.parameters.HeaderParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) PathParameter(io.swagger.models.parameters.PathParameter) FormParameter(io.swagger.models.parameters.FormParameter) BigDecimal(java.math.BigDecimal) Test(org.testng.annotations.Test)

Example 42 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.

the class ImplicitParametersTest method detailedTest.

@Test
public void detailedTest() throws NoSuchMethodException {
    final Operation operation = new Operation();
    final ReaderContext context = createDefaultContext();
    extension.applyImplicitParameters(context, operation, findMethod(context, "testMethod3"));
    final List<Parameter> parameters = operation.getParameters();
    final Parameter parameter1 = parameters.get(0);
    Assert.assertNotNull(parameter1);
    Assert.assertTrue(parameter1 instanceof PathParameter);
    Assert.assertEquals(parameter1.getName(), "param1");
    Assert.assertEquals(parameter1.getIn(), "path");
    Assert.assertEquals(parameter1.getDescription(), "Param 1");
    Assert.assertTrue(parameter1.getRequired());
    final Parameter parameter5 = parameters.get(4);
    Assert.assertNotNull(parameter5);
    Assert.assertTrue(parameter5 instanceof BodyParameter);
    Assert.assertEquals(parameter5.getName(), "param5");
    Assert.assertEquals(parameter5.getIn(), "body");
    Assert.assertEquals(parameter5.getDescription(), "Param 5");
    Assert.assertFalse(parameter5.getRequired());
}
Also used : ReaderContext(io.swagger.servlet.ReaderContext) BodyParameter(io.swagger.models.parameters.BodyParameter) PathParameter(io.swagger.models.parameters.PathParameter) Parameter(io.swagger.models.parameters.Parameter) Operation(io.swagger.models.Operation) BodyParameter(io.swagger.models.parameters.BodyParameter) PathParameter(io.swagger.models.parameters.PathParameter) Test(org.testng.annotations.Test)

Example 43 with BodyParameter

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

the class OperationGenerator method processBodyBasedParameter.

protected void processBodyBasedParameter() {
    List<BodyParameter> bodyParameters = collectBodyBasedParameters();
    if (bodyParameters.isEmpty()) {
        return;
    }
    if (bodyParameters.size() == 1) {
        Parameter bodyParameter = bodyParameters.get(0);
        replaceBodyBasedParameter(bodyParameter);
        return;
    }
    // 将多个pending合并成一个body
    mergeBodyBasedParameters(bodyParameters);
}
Also used : PendingBodyParameter(io.servicecomb.swagger.extend.parameter.PendingBodyParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) Parameter(io.swagger.models.parameters.Parameter) ContextParameter(io.servicecomb.swagger.extend.parameter.ContextParameter) PendingBodyParameter(io.servicecomb.swagger.extend.parameter.PendingBodyParameter) BodyParameter(io.swagger.models.parameters.BodyParameter)

Example 44 with BodyParameter

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

the class OperationGenerator method mergeBodyBasedParameters.

protected void mergeBodyBasedParameters(List<BodyParameter> bodyParameters) {
    for (Parameter parameter : bodyParameters) {
        swaggerParameters.remove(parameter);
    }
    // 将这些body包装为一个class,整体做为一个body参数
    String bodyParamName = ParamUtils.generateBodyParameterName(providerMethod);
    Class<?> cls = ClassUtils.getOrCreateBodyClass(this, bodyParameters);
    BodyParameter bodyParameter = ParamUtils.createBodyParameter(swagger, bodyParamName, cls);
    swaggerParameters.add(bodyParameter);
}
Also used : PendingBodyParameter(io.servicecomb.swagger.extend.parameter.PendingBodyParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) Parameter(io.swagger.models.parameters.Parameter) ContextParameter(io.servicecomb.swagger.extend.parameter.ContextParameter) PendingBodyParameter(io.servicecomb.swagger.extend.parameter.PendingBodyParameter) BodyParameter(io.swagger.models.parameters.BodyParameter)

Example 45 with BodyParameter

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

the class ParamUtils method createBodyParameter.

public static BodyParameter createBodyParameter(Swagger swagger, String paramName, Type paramType) {
    addDefinitions(swagger, paramType);
    Property property = ModelConverters.getInstance().readAsProperty(paramType);
    Model model = PropertyBuilder.toModel(property);
    BodyParameter bodyParameter = new BodyParameter();
    bodyParameter.setName(paramName);
    bodyParameter.setSchema(model);
    return bodyParameter;
}
Also used : Model(io.swagger.models.Model) PendingBodyParameter(io.servicecomb.swagger.extend.parameter.PendingBodyParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) MapProperty(com.fasterxml.jackson.databind.ser.std.MapProperty) ArrayProperty(io.swagger.models.properties.ArrayProperty) ObjectProperty(io.swagger.models.properties.ObjectProperty) RefProperty(io.swagger.models.properties.RefProperty) Property(io.swagger.models.properties.Property)

Aggregations

BodyParameter (io.swagger.models.parameters.BodyParameter)45 Test (org.testng.annotations.Test)34 Operation (io.swagger.models.Operation)20 Parameter (io.swagger.models.parameters.Parameter)16 ArrayModel (io.swagger.models.ArrayModel)15 Model (io.swagger.models.Model)14 PathParameter (io.swagger.models.parameters.PathParameter)14 Path (io.swagger.models.Path)13 QueryParameter (io.swagger.models.parameters.QueryParameter)13 StringProperty (io.swagger.models.properties.StringProperty)12 Swagger (io.swagger.models.Swagger)11 RefProperty (io.swagger.models.properties.RefProperty)11 Property (io.swagger.models.properties.Property)10 RefModel (io.swagger.models.RefModel)7 HeaderParameter (io.swagger.models.parameters.HeaderParameter)7 ModelImpl (io.swagger.models.ModelImpl)6 SerializableParameter (io.swagger.models.parameters.SerializableParameter)6 ArrayProperty (io.swagger.models.properties.ArrayProperty)5 PendingBodyParameter (io.servicecomb.swagger.extend.parameter.PendingBodyParameter)4 Response (io.swagger.models.Response)4