use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.
the class SpecFilter method removeBrokenReferenceDefinitions.
private Swagger removeBrokenReferenceDefinitions(Swagger swagger) {
if (swagger.getDefinitions() == null || swagger.getDefinitions().isEmpty())
return swagger;
Set<String> referencedDefinitions = new TreeSet<String>();
if (swagger.getResponses() != null) {
for (Response response : swagger.getResponses().values()) {
String propertyRef = getPropertyRef(response.getSchema());
if (propertyRef != null) {
referencedDefinitions.add(propertyRef);
}
}
}
if (swagger.getParameters() != null) {
for (Parameter p : swagger.getParameters().values()) {
if (p instanceof BodyParameter) {
BodyParameter bp = (BodyParameter) p;
Set<String> modelRef = getModelRef(bp.getSchema());
if (modelRef != null) {
referencedDefinitions.addAll(modelRef);
}
}
}
}
if (swagger.getPaths() != null) {
for (Path path : swagger.getPaths().values()) {
if (path.getParameters() != null) {
for (Parameter p : path.getParameters()) {
if (p instanceof BodyParameter) {
BodyParameter bp = (BodyParameter) p;
Set<String> modelRef = getModelRef(bp.getSchema());
if (modelRef != null) {
referencedDefinitions.addAll(modelRef);
}
}
}
}
if (path.getOperations() != null) {
for (Operation op : path.getOperations()) {
if (op.getResponses() != null) {
for (Response response : op.getResponses().values()) {
String propertyRef = getPropertyRef(response.getSchema());
if (propertyRef != null) {
referencedDefinitions.add(propertyRef);
}
}
}
if (op.getParameters() != null) {
for (Parameter p : op.getParameters()) {
if (p instanceof BodyParameter) {
BodyParameter bp = (BodyParameter) p;
Set<String> modelRef = getModelRef(bp.getSchema());
if (modelRef != null) {
referencedDefinitions.addAll(modelRef);
}
}
}
}
}
}
}
}
if (swagger.getDefinitions() != null) {
Set<String> nestedReferencedDefinitions = new TreeSet<String>();
for (String ref : referencedDefinitions) {
locateReferencedDefinitions(ref, nestedReferencedDefinitions, swagger);
}
referencedDefinitions.addAll(nestedReferencedDefinitions);
swagger.getDefinitions().keySet().retainAll(referencedDefinitions);
}
return swagger;
}
use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.
the class PostParamTest method findAPostOperationWithStringsArray.
@Test(description = "find a Post operation with an array of strings")
public void findAPostOperationWithStringsArray() {
Path petPath = getPath("arrayOfStrings");
assertNotNull(petPath);
Operation petPost = petPath.getPost();
assertNotNull(petPost);
assertEquals(petPost.getParameters().size(), 1);
BodyParameter petPostBodyParam = (BodyParameter) petPost.getParameters().get(0);
assertEquals(petPostBodyParam.getName(), BODY);
Model inputModel = petPostBodyParam.getSchema();
assertTrue(inputModel instanceof ArrayModel);
ArrayModel ap = (ArrayModel) inputModel;
Property inputSchema = ap.getItems();
assertTrue(inputSchema instanceof StringProperty);
}
use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.
the class PostParamTest method findAPostOperationWithStringsCollection.
@Test(description = "find a Post operation with collection of strings")
public void findAPostOperationWithStringsCollection() {
Path petPath = getPath("collectionOfStrings");
assertNotNull(petPath);
Operation petPost = petPath.getPost();
assertNotNull(petPost);
assertEquals(petPost.getParameters().size(), 1);
BodyParameter petPostBodyParam = (BodyParameter) petPost.getParameters().get(0);
assertEquals(petPostBodyParam.getName(), BODY);
Model inputModel = petPostBodyParam.getSchema();
assertTrue(inputModel instanceof ArrayModel);
ArrayModel ap = (ArrayModel) inputModel;
Property inputSchema = ap.getItems();
assertTrue(inputSchema instanceof StringProperty);
}
use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.
the class PostParamTest method findAPostOperationWithSingleString.
@Test(description = "find a Post operation with single string")
public void findAPostOperationWithSingleString() {
Path petPath = getPath("singleString");
assertNotNull(petPath);
assertNull(petPath.getGet());
Operation petPost = petPath.getPost();
assertNotNull(petPost);
assertEquals(petPost.getParameters().size(), 1);
BodyParameter petPostBodyParam = (BodyParameter) petPost.getParameters().get(0);
assertEquals(petPostBodyParam.getName(), BODY);
assertTrue(petPostBodyParam.getSchema() instanceof Model);
}
use of io.swagger.models.parameters.BodyParameter in project swagger-core by swagger-api.
the class PostParamTest method findAPostOperationWithObjectsArray.
@Test(description = "find a Post operation with an array of objects")
public void findAPostOperationWithObjectsArray() {
Path petPath = getPath("arrayOfObjects");
assertNotNull(petPath);
Operation petPost = petPath.getPost();
assertNotNull(petPost);
assertEquals(petPost.getParameters().size(), 1);
BodyParameter petPostBodyParam = (BodyParameter) petPost.getParameters().get(0);
assertEquals(petPostBodyParam.getName(), BODY);
Model inputModel = petPostBodyParam.getSchema();
assertTrue(inputModel instanceof ArrayModel);
ArrayModel ap = (ArrayModel) inputModel;
Property inputSchema = ap.getItems();
assertTrue(inputSchema instanceof RefProperty);
RefProperty rm = (RefProperty) inputSchema;
assertEquals(rm.getSimpleRef(), PET);
}
Aggregations