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

use swagger class to update open api

parent 0573110f
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.NetcdfGroundMotions;
import gov.usgs.earthquake.nshmp.netcdf.NetcdfDataFilesGroundMotions;
import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
import io.micronaut.context.annotation.Value;
......@@ -34,74 +33,30 @@ public class SwaggerController {
@Inject
private NshmpMicronautServlet servlet;
@Value("${nshmp-ws-static.netcdf-file}")
@Value("${nshmp-ws-static.netcdf-path}")
Path netcdfPath;
NetcdfGroundMotions netcdf;
@Value("${nshmp-ws-static.aashto-year}")
int aashtoYear;
NetcdfServiceGroundMotions service;
/**
* Read in data type and return the appropriate service to use.
*/
@EventListener
void startup(StartupEvent event) {
netcdf = new NetcdfGroundMotions(netcdfPath);
var netcdfDataFiles = new NetcdfDataFilesGroundMotions(netcdfPath, aashtoYear);
service = new NetcdfServiceGroundMotions(netcdfDataFiles);
}
@Get(produces = MediaType.TEXT_EVENT_STREAM)
public HttpResponse<String> doGet(HttpRequest<?> request) {
try {
var openApi = NetcdfWsUtils.getOpenApi(
request,
netcdf.netcdfData(),
servicePatternSection(request));
return HttpResponse.ok(Yaml.pretty(openApi));
SwaggerGroundMotions swagger = new SwaggerGroundMotions(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 + "/spectra?longitude={number}&latitude={number}\n" +
url + "/spectra?longitude={number}&latitude={number}&siteClass={string}\n" +
"````\n" +
"Example:\n" +
"```text\n" +
url + "/spectra?longitude=-118&latitude=34\n" +
url + "/spectra?longitude=-118&latitude=34&siteClass=BC\n" +
"```\n")
.append(
"### Slash Pattern\n" +
"The slash based service call is in the form of:\n" +
"```text\n" +
url + "/spectra/{longitude}/{latitude}\n" +
url + "/spectra/{longitude}/{latitude}/{siteClass}\n" +
"```\n" +
"Example:\n" +
"```text\n" +
url + "/spectra/-118/34\n" +
url + "/spectra/-118/34/BC\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