private Operation findOperationById(OpenApi3 model, String operationId) { for (Path path : model.getPaths().values()) { for (Operation op : path.getOperations().values()) { if (operationId.equals(op.getOperationId())) { return op; } } } return null; }
public String schemaLabel(final String context, final OpenApi3 model) { final String result = model.getInfo().getTitle(); return result; }
private Operation findOperationByPath(OpenApi3 model, String relativePath, ValidationResults results) { Path path = model.getPath(relativePath); return path != null ? path.getGet(false) : null; }
@Override public void runObjectValidations() { OpenApi3 model = (OpenApi3) value.getOverlay(); validateStringField(F_openApi, true, "3\\.\\d+(\\.\\d+.*)?"); validateField(F_info, true, Info.class, new InfoValidator()); validateListField(F_servers, false, false, Server.class, new ServerValidator()); validateMapField(F_paths, true, false, Path.class, new PathValidator()); validateExtensions(model.getPathsExtensions()); validateMapField(F_schemas, false, false, Schema.class, new SchemaValidator()); validateMapField(F_responses, false, false, Response.class, new ResponseValidator()); validateMapField(F_parameters, false, false, Parameter.class, new ParameterValidator()); validateMapField(F_examples, false, false, Example.class, new ExampleValidator()); validateMapField(F_requestBodies, false, false, RequestBody.class, new RequestBodyValidator()); validateMapField(F_headers, false, false, Header.class, new HeaderValidator()); validateMapField(F_securitySchemes, false, false, SecurityScheme.class, new SecuritySchemeValidator()); validateMapField(F_links, false, false, Link.class, new LinkValidator()); validateMapField(F_callbacks, false, false, Callback.class, new CallbackValidator()); validateExtensions(model.getComponentsExtensions()); validateListField(F_securityRequirements, false, false, SecurityRequirement.class, new SecurityRequirementValidator()); validateListField(F_tags, false, false, Tag.class, new TagValidator()); validateField(F_externalDocs, false, ExternalDocs.class, new ExternalDocsValidator()); validateExtensions(model.getExtensions()); } }
public String generateJSON(final OpenApi3 swagger) { String _xblockexpression = null; swagger.getServers(); StringConcatenation _builder = new StringConcatenation(); _builder.append("{"); _builder.append("\t\t"); _builder.append("\"name\": \""); Info _info = swagger.getInfo(); String _title = null; if (_info!=null) { return this.generateResource(e.getKey(), e.getValue(), (idx).intValue()); }; String _joinedMap = this._xtendHelper.<Map.Entry<String, Path>>joinedMap(this._xtendHelper.<String, Path>safe(swagger.getPaths()).entrySet(), ",", _function); _builder.append(_joinedMap, "\t\t"); _builder.newLineIfNotEmpty();
public void checkAllSchemesDefined(Overlay<Map<String, SecurityParameter>> requirements) { OpenApi3 model = value.getModel(); Set<String> definedSchemes = model.getSecuritySchemes().keySet(); MapOverlay<SecurityParameter> mapOverlay = Overlay.getMapOverlay(requirements); for (String name : mapOverlay.keySet()) { if (!definedSchemes.contains(name)) { results.addError(msg(UnkSecScheme, name), Overlay.of(mapOverlay, name)); } } } }
@Override protected Loadability getContentLoadability(File file, int diligence, String content) throws JsonProcessingException, IOException { if (diligence <= LoadabilityTester.PARTIAL_LOAD_DILIGENCE) { // openapi: "3.0.0" JsonNode tree = getJsonTree(content); if (tree.path("openapi").asText().startsWith("3.0.")) { return Loadability.loadable(); } else { return Loadability.notLoadable("File does not contain a valid OpenAPI v3 definition"); } } else { OpenApi<?> definition = new OpenApiParser().parse(content, file.toURI().toURL()); if (definition instanceof OpenApi3 && ((OpenApi3) definition).isValid()) { return Loadability.loadable(); } else { return Loadability.notLoadable("File does not contain a valid OpenAPI v3 definition"); } } } }
private OpenApi<?> parse(ReferenceManager manager, boolean validate) { JsonNode tree; try { tree = manager.loadDoc(); if (isVersion3(tree)) { OpenApi3 model = (OpenApi3) OpenApi3Impl.factory.create(tree, null, manager); ((OpenApi3Impl) model)._setCreatingRef(manager.getDocReference()); if (validate) { model.validate(); } return model; } else { throw new OpenApiParserException( "Could not determine OpenApi version from model: no 'openapi' property"); } } catch (IOException e) { throw new OpenApiParserException("Failed to parse model", e); } }
@Override public void runObjectValidations() { OpenApi3 model = (OpenApi3) value.getOverlay(); validateStringField(F_openApi, true, "3\\.\\d+(\\.\\d+.*)?"); validateField(F_info, true, Info.class, new InfoValidator()); validateListField(F_servers, false, false, Server.class, new ServerValidator()); validateMapField(F_paths, true, false, Path.class, new PathValidator()); validateExtensions(model.getPathsExtensions()); validateMapField(F_schemas, false, false, Schema.class, new SchemaValidator()); validateMapField(F_responses, false, false, Response.class, new ResponseValidator()); validateMapField(F_parameters, false, false, Parameter.class, new ParameterValidator()); validateMapField(F_examples, false, false, Example.class, new ExampleValidator()); validateMapField(F_requestBodies, false, false, RequestBody.class, new RequestBodyValidator()); validateMapField(F_headers, false, false, Header.class, new HeaderValidator()); validateMapField(F_securitySchemes, false, false, SecurityScheme.class, new SecuritySchemeValidator()); validateMapField(F_links, false, false, Link.class, new LinkValidator()); validateMapField(F_callbacks, false, false, Callback.class, new CallbackValidator()); validateExtensions(model.getComponentsExtensions()); validateListField(F_securityRequirements, false, false, SecurityRequirement.class, new SecurityRequirementValidator()); validateListField(F_tags, false, false, Tag.class, new TagValidator()); validateField(F_externalDocs, false, ExternalDocs.class, new ExternalDocsValidator()); validateExtensions(model.getExtensions()); } }
public void checkAllSchemesDefined(Overlay<Map<String, SecurityParameter>> requirements) { OpenApi3 model = value.getModel(); Set<String> definedSchemes = model.getSecuritySchemes().keySet(); MapOverlay<SecurityParameter> mapOverlay = Overlay.getMapOverlay(requirements); for (String name : mapOverlay.keySet()) { if (!definedSchemes.contains(name)) { results.addError(msg(UnkSecScheme, name), Overlay.of(mapOverlay, name)); } } } }
@Override public OpenApi3 load(File inFile) throws GenerationException { OpenApi3 model; try { model = (OpenApi3) new OpenApiNormalizer(OPENAPI3_MODEL_VERSION, getNormalizerOptions()).of(inFile) .normalizeToKaizen(inFile); } catch (Exception e) { throw new GenerationException("Failed to parse Swagger spec: " + inFile, e); } if (model != null && model.isValid()) { return model; } else { throw new GenerationException("File does not contain a valid Swagger spec: " + inFile); } }
private OpenApi<?> parse(ReferenceManager manager, boolean validate) { JsonNode tree; try { tree = manager.loadDoc(); if (isVersion3(tree)) { OpenApi3 model = (OpenApi3) OpenApi3Impl.factory.create(tree, null, manager); ((OpenApi3Impl) model)._setCreatingRef(manager.getDocReference()); if (validate) { model.validate(); } return model; } else { throw new OpenApiParserException( "Could not determine OpenApi version from model: no 'openapi' property"); } } catch (IOException e) { throw new OpenApiParserException("Failed to parse model", e); } }
private Operation findOperationById(OpenApi3 model, String operationId) { for (Path path : model.getPaths().values()) { for (Operation op : path.getOperations().values()) { if (operationId.equals(op.getOperationId())) { return op; } } } return null; }
private Operation findOperationByPath(OpenApi3 model, String relativePath, ValidationResults results) { Path path = model.getPath(relativePath); return path != null ? path.getGet(false) : null; }