use of io.swagger.v3.oas.annotations.responses.ApiResponses in project carbon-apimgt by wso2.
the class OASParserUtil method setRefOfApiResponseHeaders.
private static void setRefOfApiResponseHeaders(ApiResponses responses, SwaggerUpdateContext context) {
if (responses != null) {
for (ApiResponse response : responses.values()) {
Map<String, Header> headers = response.getHeaders();
if (headers != null) {
for (Header header : headers.values()) {
Content content = header.getContent();
extractReferenceFromContent(content, context);
}
}
}
}
}
use of io.swagger.v3.oas.annotations.responses.ApiResponses in project atlasmap by atlasmap.
the class CsvService method inspect.
/**
* Inspect a CSV instance and return a Document object.
* @param request request
* @param format format
* @param delimiter delimiter
* @param firstRecordAsHeader first record as header
* @param skipHeaderRecord skip header record
* @param headers headers
* @param commentMarker comment marker
* @param escape escape
* @param ignoreEmptyLines ignore empty lines
* @param ignoreHeaderCase ignore header case
* @param ignoreSurroundingSpaces ignore surrounding spaces
* @param nullString null string
* @param quote quote
* @param allowDuplicateHeaderNames allow duplicate header names
* @param allowMissingColumnNames allow missing column names
* @return {@link CsvInspectionResponse}
* @throws IOException unexpected error
*/
@POST
@Consumes({ MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
@Path("/inspect")
@Operation(summary = "Inspect CSV", description = "Inspect a CSV instance and return a Document object")
@RequestBody(description = "Csv", content = @Content(mediaType = "text/csv", schema = @Schema(implementation = String.class)))
@ApiResponses(@ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = CsvInspectionResponse.class)), description = "Return a Document object"))
public Response inspect(InputStream request, @QueryParam("format") String format, @QueryParam("delimiter") String delimiter, @QueryParam("firstRecordAsHeader") Boolean firstRecordAsHeader, @QueryParam("skipRecordHeader") Boolean skipHeaderRecord, @QueryParam("headers") String headers, @QueryParam("commentMarker") String commentMarker, @QueryParam("escape") String escape, @QueryParam("ignoreEmptyLines") Boolean ignoreEmptyLines, @QueryParam("ignoreHeaderCase") Boolean ignoreHeaderCase, @QueryParam("ignoreSurroundingSpaces") Boolean ignoreSurroundingSpaces, @QueryParam("nullString") String nullString, @QueryParam("quote") String quote, @QueryParam("allowDuplicateHeaderNames") Boolean allowDuplicateHeaderNames, @QueryParam("allowMissingColumnNames") Boolean allowMissingColumnNames) throws IOException {
long startTime = System.currentTimeMillis();
CsvInspectionResponse response = new CsvInspectionResponse();
try {
if (LOG.isDebugEnabled()) {
LOG.debug("Options: delimiter={}, firstRecordAsHeader={}", delimiter, firstRecordAsHeader);
}
CsvConfig csvConfig = new CsvConfig(format);
if (delimiter != null) {
csvConfig.setDelimiter(delimiter.charAt(0));
}
csvConfig.setFirstRecordAsHeader(firstRecordAsHeader);
csvConfig.setSkipHeaderRecord(skipHeaderRecord);
csvConfig.setHeaders(headers);
if (commentMarker != null) {
csvConfig.setCommentMarker(commentMarker.charAt(0));
}
if (escape != null) {
csvConfig.setEscape(escape.charAt(0));
}
csvConfig.setIgnoreEmptyLines(ignoreEmptyLines);
csvConfig.setIgnoreHeaderCase(ignoreHeaderCase);
csvConfig.setIgnoreSurroundingSpaces(ignoreSurroundingSpaces);
csvConfig.setNullString(nullString);
if (quote != null) {
csvConfig.setQuote(quote.charAt(0));
}
csvConfig.setAllowDuplicateHeaderNames(allowDuplicateHeaderNames);
csvConfig.setAllowMissingColumnNames(allowMissingColumnNames);
CsvFieldReader csvFieldReader = new CsvFieldReader(csvConfig);
csvFieldReader.setDocument(request);
Document document = csvFieldReader.readSchema();
response.setCsvDocument(document);
request.close();
} catch (Exception e) {
LOG.error("Error inspecting CSV: " + e.getMessage(), e);
response.setErrorMessage(e.getMessage());
} finally {
request.close();
;
response.setExecutionTime(System.currentTimeMillis() - startTime);
}
if (LOG.isDebugEnabled()) {
LOG.debug(("Response: {}" + new ObjectMapper().writeValueAsString(response)));
}
return Response.ok().entity(toJson(response)).build();
}
use of io.swagger.v3.oas.annotations.responses.ApiResponses in project atlasmap by atlasmap.
the class AtlasService method validateMappingRequest.
/**
* Validates the mapping file.
* @param mapping mapping
* @param mappingDefinitionId mapping definition ID
* @param uriInfo URI info
* @return {@link Validations} validation result
*/
@PUT
@Path("/mapping/validate/{mappingDefinitionId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(summary = "Validate Mapping", description = "Validate mapping file")
@RequestBody(description = "Mapping file content", content = @Content(schema = @Schema(implementation = AtlasMapping.class)))
@ApiResponses(@ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = Validations.class)), description = "Return a validation result"))
public Response validateMappingRequest(InputStream mapping, @Parameter(description = "Mapping ID") @PathParam("mappingDefinitionId") Integer mappingDefinitionId, @Context UriInfo uriInfo) {
try {
AtlasMapping atlasMapping = fromJson(mapping, AtlasMapping.class);
LOG.debug("Validate mappings: {}", atlasMapping.getName());
return validateMapping(mappingDefinitionId, atlasMapping, uriInfo);
} catch (AtlasException | IOException e) {
throw new WebApplicationException(e.getMessage(), e, Status.INTERNAL_SERVER_ERROR);
}
}
use of io.swagger.v3.oas.annotations.responses.ApiResponses in project atlasmap by atlasmap.
the class AtlasService method getMappingRequest.
/**
* Retrieve a mapping file saved on the server.
* @param mappingFormat file type
* @param mappingDefinitionId mapping definition ID
* @return file
*/
@GET
@Path("/mapping/{mappingFormat}/{mappingDefinitionId}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.APPLICATION_OCTET_STREAM })
@Operation(summary = "Get Mapping", description = "Retrieve a mapping file saved on the server")
@ApiResponses({ @ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = AtlasMapping.class)), description = "Return a mapping file content"), @ApiResponse(responseCode = "204", description = "Mapping file was not found"), @ApiResponse(responseCode = "500", description = "Mapping file access error") })
public Response getMappingRequest(@Parameter(description = "Mapping Format") @PathParam("mappingFormat") MappingFileType mappingFormat, @Parameter(description = "Mapping ID") @PathParam("mappingDefinitionId") Integer mappingDefinitionId) {
LOG.debug("getMappingRequest: {} '{}'", mappingFormat, mappingDefinitionId);
ADMArchiveHandler admHandler = loadExplodedMappingDirectory(mappingDefinitionId);
switch(mappingFormat) {
case JSON:
byte[] serialized = null;
try {
serialized = admHandler.getMappingDefinitionBytes();
} catch (Exception e) {
LOG.error("Error retrieving mapping definition file for ID:" + mappingDefinitionId, e);
throw new WebApplicationException(e.getMessage(), e, Status.INTERNAL_SERVER_ERROR);
}
if (LOG.isDebugEnabled() && serialized != null) {
LOG.debug(new String(serialized));
}
if (serialized == null) {
LOG.debug("Mapping definition not found for ID:{}", mappingDefinitionId);
return Response.noContent().build();
}
return Response.ok().entity(serialized).build();
case GZ:
try {
if (admHandler.getGzippedADMDigestBytes() == null) {
LOG.debug("ADM Digest file not found for ID:{}", mappingDefinitionId);
return Response.noContent().build();
}
return Response.ok().entity(admHandler.getGzippedADMDigestBytes()).build();
} catch (Exception e) {
LOG.error("Error getting compressed ADM digest file.\n" + e.getMessage(), e);
throw new WebApplicationException(e.getMessage(), e, Status.INTERNAL_SERVER_ERROR);
}
case ZIP:
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
admHandler.setIgnoreLibrary(false);
admHandler.setLibraryDirectory(Paths.get(this.libFolder));
admHandler.export(out);
return Response.ok().entity(out.toByteArray()).build();
} catch (Exception e) {
LOG.error("Error getting ADM archive file.\n" + e.getMessage(), e);
throw new WebApplicationException(e.getMessage(), e, Status.INTERNAL_SERVER_ERROR);
}
default:
throw new WebApplicationException("Unrecognized mapping format: " + mappingFormat, Status.INTERNAL_SERVER_ERROR);
}
}
use of io.swagger.v3.oas.annotations.responses.ApiResponses in project atlasmap by atlasmap.
the class AtlasService method resetAllMappings.
/**
* Removes all mapping files and catalogs saved on the server.
* @return empty response
*/
@DELETE
@Path("/mapping/RESET/ALL")
@Produces(MediaType.APPLICATION_JSON)
@Operation(summary = "Remove All Mappings", description = "Remove all mapping files and catalogs saved on the server")
@ApiResponses({ @ApiResponse(responseCode = "200", description = "All mapping files were removed successfully"), @ApiResponse(responseCode = "204", description = "Unable to remove all mapping files") })
public Response resetAllMappings() {
LOG.debug("resetAllMappings");
java.nio.file.Path mappingFolderPath = Paths.get(mappingFolder);
File mappingFolderPathFile = mappingFolderPath.toFile();
if (mappingFolderPathFile == null || !mappingFolderPathFile.exists()) {
return Response.ok().build();
}
AtlasUtil.deleteDirectoryContents(mappingFolderPathFile);
return Response.ok().build();
}
Aggregations