diff --git a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java index 4e1a688ead05ae7f864cfa4c981a7ad41204a2cb..960c2ae042f6761df57d3629fab6768ddad42ccb 100644 --- a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java +++ b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java @@ -112,7 +112,7 @@ public class NetcdfController { "Annual Frequency of Exceedence,0.036386,0.026034,0.018125,0.012197, ...\n")) }) @Get(uri = "/{longitude}/{latitude}/{siteClass}/{imt}{?format}", - produces = MediaType.APPLICATION_JSON) + produces = { MediaType.APPLICATION_JSON, MediaType.TEXT_CSV }) public HttpResponse<String> doGetSlashByImt( HttpRequest<?> request, @Schema(required = true) @PathVariable Double latitude, @@ -177,7 +177,7 @@ public class NetcdfController { }) @Get(uri = "/{longitude}/{latitude}/{siteClass}{?format}", - produces = MediaType.APPLICATION_JSON) + produces = { MediaType.APPLICATION_JSON, MediaType.TEXT_CSV }) public HttpResponse<String> doGetSlashBySite( HttpRequest<?> request, @Schema(required = true) @PathVariable Double latitude, @@ -238,7 +238,8 @@ public class NetcdfController { "...")) }) - @Get(uri = "/{longitude}/{latitude}{?format}", produces = MediaType.APPLICATION_JSON) + @Get(uri = "/{longitude}/{latitude}{?format}", + produces = { MediaType.APPLICATION_JSON, MediaType.TEXT_CSV }) public HttpResponse<String> doGetSlash( HttpRequest<?> request, @Schema(required = true) @PathVariable Double longitude, @@ -300,10 +301,10 @@ public class NetcdfController { "Annual Frequency of Exceedence,0.036386,0.026034,0.018125,0.012197, ...\n" + "\n" + "...")) - }) - @Get(uri = "{?longitude,latitude,siteClass,imt,format}", - produces = MediaType.APPLICATION_JSON) + @Get( + uri = "{?longitude,latitude,siteClass,imt,format}", + produces = { MediaType.APPLICATION_JSON, MediaType.TEXT_CSV }) public HttpResponse<String> doGet( HttpRequest<?> request, @Schema(required = true) @QueryValue @Nullable Double longitude, diff --git a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java index 9d88e3cfa083f37dae1b03ff0ffc6c271e2a248e..8cb6efced68d8ec5f1a38afbd4651ae89d367a70 100644 --- a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java +++ b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java @@ -22,6 +22,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; +import io.micronaut.http.MediaType; /** * Abstract service handler for {@code NetcdfController}. @@ -89,7 +90,14 @@ public abstract class NetcdfService<S, T extends Query> { var service = getService(query); var response = processRequest(httpRequest, query, service); LOGGER.fine("Result:\n" + response); - return HttpResponse.ok(response); + + var httpResponse = HttpResponse.ok(response); + + if (query.format == ResponseFormat.CSV) { + httpResponse.header("Content-Type", MediaType.TEXT_CSV.toString()); + } + + return httpResponse; } catch (Exception e) { var url = httpRequest.getUri().toString(); return NetcdfWsUtils.handleError(e, getServiceName(), url);