Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
nshmp-ws-static
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ghsc
National Seismic Hazard Model Project
nshmp-ws-static
Commits
ba1c8e70
Commit
ba1c8e70
authored
5 years ago
by
Clayton, Brandon Scott
Browse files
Options
Downloads
Patches
Plain Diff
create model based swagger docs
parent
60129809
No related branches found
No related tags found
1 merge request
!28
Swagger
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/main/java/gov/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java
+150
-0
150 additions, 0 deletions
...v/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java
with
150 additions
and
0 deletions
src/main/java/gov/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java
0 → 100644
+
150
−
0
View file @
ba1c8e70
package
gov.usgs.earthquake.nshmp.netcdf.swagger
;
import
java.io.FileNotFoundException
;
import
java.io.FileReader
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.net.URL
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.Map
;
import
org.yaml.snakeyaml.DumperOptions
;
import
org.yaml.snakeyaml.Yaml
;
import
com.google.common.io.Resources
;
import
gov.usgs.earthquake.nshmp.netcdf.NshmGroup
;
import
io.swagger.v3.oas.models.PathItem
;
/**
* Create Swagger files for each model and update context path.
*/
class
UpdateSwagger
{
private
static
final
URL
SWAGGER_URL
=
Resources
.
getResource
(
"swagger"
);
private
static
final
Path
SWAGGER_DIR
=
Paths
.
get
(
"swagger-files"
);
private
static
final
Path
TARGET_FILE
;
static
{
try
{
var
dir
=
Paths
.
get
(
SWAGGER_URL
.
toURI
());
TARGET_FILE
=
dir
.
resolve
(
"netcdf-swagger.yml"
);
}
catch
(
URISyntaxException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
public
static
void
main
(
String
[]
args
)
{
run
();
}
private
static
void
run
()
{
for
(
var
nshmGroup
:
NshmGroup
.
values
())
{
updateSwaggerFile
(
TARGET_FILE
,
nshmGroup
.
model
());
}
}
private
static
void
updateSwaggerFile
(
Path
yamlPath
,
String
contextPath
)
{
var
options
=
new
DumperOptions
();
options
.
setPrettyFlow
(
true
);
options
.
setDefaultFlowStyle
(
DumperOptions
.
FlowStyle
.
BLOCK
);
var
yaml
=
new
Yaml
(
options
);
var
out
=
SWAGGER_DIR
.
resolve
(
"netcdf-swagger-"
+
contextPath
+
".yml"
);
try
{
var
yamlFile
=
yaml
.
loadAs
(
new
FileReader
(
yamlPath
.
toFile
()),
Swagger
.
class
);
var
paths
=
new
io
.
swagger
.
v3
.
oas
.
models
.
Paths
();
for
(
var
entry
:
yamlFile
.
getPaths
().
entrySet
())
{
paths
.
addPathItem
(
"/"
+
contextPath
+
entry
.
getKey
(),
entry
.
getValue
());
}
yamlFile
.
paths
=
paths
;
yaml
.
dump
(
yamlFile
,
new
FileWriter
(
out
.
toFile
()));
}
catch
(
FileNotFoundException
e
)
{
throw
new
RuntimeException
(
e
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"Could not write to ["
+
out
+
"]"
);
}
}
public
static
class
Swagger
{
String
openapi
=
"3.0.1"
;
Object
info
;
Map
<
String
,
PathItem
>
paths
;
Object
externalDocs
;
Object
servers
;
Object
tags
;
Object
components
;
Map
<
String
,
Object
>
extensions
;
public
String
getOpenapi
()
{
return
openapi
;
}
public
Object
getInfo
()
{
return
info
;
}
public
Map
<
String
,
PathItem
>
getPaths
()
{
return
paths
;
}
public
Object
getExternalDocs
()
{
return
externalDocs
;
}
public
Object
getServers
()
{
return
servers
;
}
public
Object
getTags
()
{
return
tags
;
}
public
Object
getComponents
()
{
return
components
;
}
public
Map
<
String
,
Object
>
getExtension
()
{
return
extensions
;
}
public
void
setOpenapi
(
String
openapi
)
{
this
.
openapi
=
openapi
;
}
public
void
setInfo
(
Object
info
)
{
this
.
info
=
info
;
}
public
void
setPaths
(
Map
<
String
,
PathItem
>
paths
)
{
this
.
paths
=
paths
;
}
public
void
setExternalDocs
(
Object
externalDocs
)
{
this
.
externalDocs
=
externalDocs
;
}
public
void
setServers
(
Object
servers
)
{
this
.
servers
=
servers
;
}
public
void
setTags
(
Object
tags
)
{
this
.
tags
=
tags
;
}
public
void
setComponents
(
Object
components
)
{
this
.
components
=
components
;
}
public
void
setExtension
(
Map
<
String
,
Object
>
extensions
)
{
this
.
extensions
=
extensions
;
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment