Skip to content
Snippets Groups Projects
Commit b8613cc7 authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

Use swagger class for updating open api

parent c82ca169
No related branches found
No related tags found
2 merge requests!128Production Release | nshmp-ws-static,!127Resolves - Handle Multiple NetCDF Files for AASHTO Service
package gov.usgs.earthquake.nshmp.netcdf.www;
import java.io.IOException;
import java.nio.file.Path;
import gov.usgs.earthquake.nshmp.netcdf.NetcdfHazardCurves;
import gov.usgs.earthquake.nshmp.netcdf.NetcdfDataFilesHazardCurves;
import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
import gov.usgs.earthquake.nshmp.www.SwaggerUtils;
import io.micronaut.context.annotation.Value;
import io.micronaut.context.event.StartupEvent;
......@@ -35,79 +33,27 @@ public class SwaggerController {
@Inject
private NshmpMicronautServlet servlet;
@Value("${nshmp-ws-static.netcdf-file}")
@Value("${nshmp-ws-static.netcdf-path}")
Path netcdfPath;
NetcdfHazardCurves netcdf;
NetcdfServiceHazardCurves service;
/**
* Read in data type and return the appropriate service to use.
*/
@EventListener
void startup(StartupEvent event) {
netcdf = new NetcdfHazardCurves(netcdfPath);
var netcdfDataFiles = new NetcdfDataFilesHazardCurves(netcdfPath);
service = new NetcdfServiceHazardCurves(netcdfDataFiles);
}
@Get(produces = MediaType.TEXT_EVENT_STREAM)
public HttpResponse<String> doGet(HttpRequest<?> request) {
try {
var openApi = NetcdfWsUtils.getOpenApi(
request,
netcdf.netcdfData(),
servicePatternSection(request));
SwaggerUtils.imtSchema(openApi.getComponents().getSchemas(), netcdf.netcdfData().imts());
return HttpResponse.ok(Yaml.pretty(openApi));
SwaggerHazardCurves swagger = new SwaggerHazardCurves(request, service);
return HttpResponse.ok(Yaml.pretty(swagger.updateOpenApi()));
} catch (Exception e) {
return NetcdfWsUtils.handleError(e, "Swagger", request.getUri().getPath());
}
}
private static String servicePatternSection(HttpRequest<?> request)
throws IOException {
var url = NetcdfWsUtils.getRequestUrl(request);
url = url.endsWith("/swagger") ? url.replace("/swagger", "") : url;
return new StringBuilder()
.append(
"<details>\n" +
"<summary>Service Call Patterns</summary>\n")
.append(
"### Query Pattern\n" +
"The query based service call is in the form of:\n" +
"```text\n" +
url + "/hazard?longitude={number}&latitude={number}\n" +
url + "/hazard?longitude={number}&latitude={number}&siteClass={string}\n" +
url +
"/hazard?longitude={number}&latitude={number}&siteClass={string}&imt={string}\n" +
"````\n" +
"Example:\n" +
"```text\n" +
url + "/hazard?longitude=-118&latitude=34\n" +
url + "/hazard?longitude=-118&latitude=34&siteClass=BC\n" +
url + "/hazard?longitude=-118&latitude=34&siteClass=BC&imt=PGA\n" +
"```\n")
.append(
"### Slash Pattern\n" +
"The slash based service call is in the form of:\n" +
"```text\n" +
url + "/hazard/{longitude}/{latitude}\n" +
url + "/hazard/{longitude}/{latitude}/{siteClass}\n" +
url + "/hazard/{longitude}/{latitude}/{siteClass}/{imt}\n" +
"```\n" +
"Example:\n" +
"```text\n" +
url + "/hazard/-118/34\n" +
url + "/hazard/-118/34/BC\n" +
url + "/hazard/-118/34/BC/PGA\n" +
"```\n")
.append("</details>")
.toString();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment