Search in sources :

Example 71 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project incubator-servicecomb-java-chassis by apache.

the class JaxrsDefaultParameterProcessor method process.

@Override
public void process(OperationGenerator operationGenerator, int paramIndex) {
    BodyParameter bodyParameter = ParamUtils.createBodyParameter(operationGenerator, paramIndex);
    operationGenerator.addProviderParameter(bodyParameter);
}
Also used : BodyParameter(io.swagger.models.parameters.BodyParameter)

Example 72 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project incubator-servicecomb-java-chassis by apache.

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 73 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project incubator-servicecomb-java-chassis by apache.

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) 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)

Example 74 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project incubator-servicecomb-java-chassis by apache.

the class PojoSwaggerGeneratorContext method replaceBodyBasedParameter.

protected void replaceBodyBasedParameter(OperationGenerator operationGenerator, Parameter bodyBasedParameter) {
    if (ParamUtils.isRealBodyParameter(bodyBasedParameter)) {
        return;
    }
    List<Parameter> swaggerParameters = operationGenerator.getSwaggerParameters();
    int idx = swaggerParameters.indexOf(bodyBasedParameter);
    String bodyParamName = bodyBasedParameter.getName();
    BodyParameter bodyParameter = ((PendingBodyParameter) bodyBasedParameter).createBodyParameter(bodyParamName);
    swaggerParameters.set(idx, bodyParameter);
}
Also used : PendingBodyParameter(org.apache.servicecomb.swagger.generator.pojo.extend.parameter.PendingBodyParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) PendingBodyParameter(org.apache.servicecomb.swagger.generator.pojo.extend.parameter.PendingBodyParameter) Parameter(io.swagger.models.parameters.Parameter) BodyParameter(io.swagger.models.parameters.BodyParameter) PendingBodyParameter(org.apache.servicecomb.swagger.generator.pojo.extend.parameter.PendingBodyParameter)

Example 75 with BodyParameter

use of io.swagger.models.parameters.BodyParameter in project teiid by teiid.

the class SwaggerMetadataProcessor method addProcedureParameters.

private void addProcedureParameters(final MetadataFactory mf, final Swagger swagger, final Procedure procedure, final Operation operation) throws TranslatorException {
    for (final Parameter parameter : operation.getParameters()) {
        if (parameter instanceof BodyParameter) {
            PropertyAction pa = new PropertyAction() {

                @Override
                public void execute(String name, String nameInSource, Property property, boolean array) {
                    String type = getPropertyType(property, array);
                    if (procedure.getParameterByName(nameInSource) == null) {
                        ProcedureParameter param = mf.addProcedureParameter(name, type, Type.In, procedure);
                        param.setProperty(PARAMETER_TYPE, parameter.getIn());
                        if (property != null && !property.getRequired()) {
                            param.setProperty(BaseColumn.DEFAULT_HANDLING, BaseColumn.OMIT_DEFAULT);
                        }
                        param.setNullType(NullType.No_Nulls);
                        param.setAnnotation(property != null ? property.getDescription() : null);
                        if (!name.equalsIgnoreCase(nameInSource)) {
                            param.setNameInSource(nameInSource);
                        }
                    }
                }
            };
            Model model = ((BodyParameter) parameter).getSchema();
            if (model instanceof RefModel) {
                RefModel refModel = (RefModel) model;
                if (refModel.getProperties() != null) {
                    walkProperties(swagger, refModel.getProperties(), null, null, pa);
                } else if (refModel.getReference() != null) {
                    Model m = swagger.getDefinitions().get(refModel.getSimpleRef());
                    walkProperties(swagger, m.getProperties(), null, null, pa);
                }
            } else {
                if ((model instanceof ModelImpl) && model.getProperties() != null) {
                    walkProperties(swagger, model.getProperties(), null, null, pa);
                } else {
                    ProcedureParameter p = mf.addProcedureParameter(parameter.getName(), DataTypeManager.DefaultDataTypes.CLOB, Type.In, procedure);
                    p.setProperty(PARAMETER_TYPE, parameter.getIn());
                    p.setNullType(NullType.No_Nulls);
                    p.setAnnotation(parameter.getDescription());
                }
            }
        } else {
            String name = parameter.getName();
            ProcedureParameter pp = null;
            String type = null;
            Object defaultValue = null;
            String collectionFormat = null;
            if (parameter instanceof AbstractSerializableParameter) {
                AbstractSerializableParameter p = (AbstractSerializableParameter) parameter;
                type = p.getType();
                if (p.getType().equalsIgnoreCase("array")) {
                    Property ap = p.getItems();
                    type = ap.getType();
                }
                type = SwaggerTypeManager.teiidType(type, p.getFormat(), p.getItems() != null);
                defaultValue = p.getDefaultValue();
                collectionFormat = p.getCollectionFormat();
            } else {
                // $NON-NLS-1$
                throw new MetadataException("Unknown property type" + parameter.getClass().getName());
            }
            pp = mf.addProcedureParameter(name, type, Type.In, procedure);
            pp.setProperty(PARAMETER_TYPE, parameter.getIn());
            boolean required = parameter.getRequired();
            if (!required) {
                pp.setProperty(BaseColumn.DEFAULT_HANDLING, BaseColumn.OMIT_DEFAULT);
            }
            pp.setNullType(NullType.No_Nulls);
            pp.setAnnotation(parameter.getDescription());
            if (defaultValue != null) {
                pp.setDefaultValue(defaultValue.toString());
            }
            if (collectionFormat != null) {
                pp.setProperty(COLLECION_FORMAT, collectionFormat);
            }
            // extended properties
            for (Entry<String, Object> extension : parameter.getVendorExtensions().entrySet()) {
                pp.setProperty(extension.getKey(), extension.getValue().toString());
            }
        }
    }
}
Also used : ProcedureParameter(org.teiid.metadata.ProcedureParameter) RefModel(io.swagger.models.RefModel) BodyParameter(io.swagger.models.parameters.BodyParameter) MetadataException(org.teiid.metadata.MetadataException) AbstractSerializableParameter(io.swagger.models.parameters.AbstractSerializableParameter) Model(io.swagger.models.Model) RefModel(io.swagger.models.RefModel) AbstractSerializableParameter(io.swagger.models.parameters.AbstractSerializableParameter) BodyParameter(io.swagger.models.parameters.BodyParameter) Parameter(io.swagger.models.parameters.Parameter) ProcedureParameter(org.teiid.metadata.ProcedureParameter) ModelImpl(io.swagger.models.ModelImpl) ArrayProperty(io.swagger.models.properties.ArrayProperty) RefProperty(io.swagger.models.properties.RefProperty) Property(io.swagger.models.properties.Property) MapProperty(io.swagger.models.properties.MapProperty) TranslatorProperty(org.teiid.translator.TranslatorProperty) ExtensionMetadataProperty(org.teiid.metadata.ExtensionMetadataProperty) ObjectProperty(io.swagger.models.properties.ObjectProperty) FileProperty(io.swagger.models.properties.FileProperty)

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