Skip to content

Commit 2c6cac2

Browse files
swagger to openapi updates
1 parent b74f110 commit 2c6cac2

File tree

158 files changed

+158036
-184301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+158036
-184301
lines changed

.gitignore

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11

2-
site/
32
.idea/
3+
4+
# Virtual environments
5+
myenv/
6+
venv/
7+
env/
8+
.venv/
9+
10+
# Python
11+
__pycache__/
12+
*.pyc
13+
*.pyo
14+
*.pyd
15+
.Python

Dockerfile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@ ENV ENV_PARAM=${ENV_PARAM}
2929
ENV API_URL=${API_URL}
3030
ENV API_SCHEME=${API_SCHEME}
3131

32-
RUN pip install --no-cache-dir mkdocs black
32+
RUN pip install --no-cache-dir black
3333
RUN make install ENV=${ENV_PARAM}
34-
RUN make swagger_install
35-
RUN make build
36-
RUN make swagger_build API_URL=${API_URL} API_SCHEME=${API_SCHEME}
34+
RUN make swagger_build API_URL=${API_URL} API_SCHEME=${API_SCHEME}
3735

3836
# Stage 2: Serve the static site using Nginx
3937
FROM 942286566325.dkr.ecr.eu-west-1.amazonaws.com/figshare/nginx:1.18 AS deployment

Makefile

Lines changed: 175 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,200 @@ DOCKER_BUILD_EXTRA_PARAMS:=
33
DOCKER_BUILD_PARAMS:=--ssh default ${DOCKER_BUILD_EXTRA_PARAMS}
44
CIMAGE_DEPLOYMENT_TAG:=figshare/user_documentation:deployment
55
CIMAGE_LATEST_TAG:=figshare/user_documentation:latest
6+
API_URL:=api.figinternal.dev
7+
API_SCHEME:=https
68

7-
build:
8-
mkdocs build
9-
.PHONY: build
10-
11-
publish:
12-
mkdocs gh-deploy
13-
.PHONY: publish
149

1510
install:
16-
pip install mkdocs
11+
cd swagger_documentation && pip install -r requirements.txt
1712
.PHONY: install
1813

1914
format:
20-
black -l 120 -t py39 ./swagger_documentation
15+
black -l 120 -t py39 ./swagger_documentation
2116
.PHONY: format
2217

18+
server:
19+
cd swagger_documentation && python -m http.server 8000
20+
.PHONY: server
21+
22+
# Swagger/OpenAPI targets
23+
swagger:
24+
cd swagger_documentation && python parse_swagger.py ${API_URL} ${API_SCHEME}
25+
.PHONY: swagger
26+
27+
docs:
28+
cd swagger_documentation/docs && python merge_openapi.py
29+
.PHONY: docs
30+
31+
client_samples_generate:
32+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g html2 -o generated-samples/
33+
.PHONY: client_samples_generate
34+
35+
client_samples_parse:
36+
cd swagger_documentation && python parse_client_sample_codes.py
37+
.PHONY: client_samples_parse
38+
39+
client_samples:
40+
make client_samples_generate client_samples_parse
41+
.PHONY: client_samples
42+
2343
swagger_build:
24-
cd swagger_documentation && make documentation
44+
make docs swagger client_samples clients
2545
.PHONY: swagger_build
2646

27-
swagger_install:
28-
cd swagger_documentation && make install
29-
.PHONY: swagger_install
47+
# Client generation targets
48+
generate_client_go:
49+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g go -o clients/go/
50+
generate_client_java:
51+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g java -o clients/java/
52+
generate_client_csharp:
53+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g csharp -o clients/csharp/
54+
generate_client_php:
55+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g php -o clients/php/
56+
generate_client_perl:
57+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g perl -o clients/perl/
58+
generate_client_python:
59+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g python -o clients/python/
60+
generate_client_python-flask:
61+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g python-flask -o clients/python-flask/
62+
generate_client_javascript:
63+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g javascript -o clients/javascript/
64+
generate_client_typescript-axios:
65+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g typescript-axios -o clients/typescript-axios/
66+
generate_client_nodejs-server:
67+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g nodejs-express-server -o clients/nodejs-server/
68+
generate_client_ruby:
69+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g ruby -o clients/ruby/
70+
generate_client_html2:
71+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g html2 -o clients/html2/
72+
generate_client_swift:
73+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g swift5 -o clients/swift/
74+
generate_client_kotlin:
75+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g kotlin -o clients/kotlin/
76+
generate_client_rust:
77+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g rust -o clients/rust/
78+
generate_client_clojure:
79+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g clojure -o clients/clojure/
80+
generate_client_haskell:
81+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g haskell-http-client -o clients/haskell/
82+
generate_client_javascript-closure-angular:
83+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g javascript-closure-angular -o clients/javascript-closure-angular/
84+
generate_client_dynamic-html:
85+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g dynamic-html -o clients/dynamic-html/
86+
generate_client_go-server:
87+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i openapi.json -g go-server -o clients/go-server/
3088

31-
server:
32-
cd swagger_documentation && python -m http.server 8000
33-
.PHONY: server
89+
# Client zip targets
90+
zip_client_go:
91+
cd swagger_documentation/clients/go && zip -r ../go.zip *
92+
zip_client_java:
93+
cd swagger_documentation/clients/java && zip -r ../java.zip *
94+
zip_client_csharp:
95+
cd swagger_documentation/clients/csharp && zip -r ../csharp.zip *
96+
zip_client_php:
97+
cd swagger_documentation/clients/php && zip -r ../php.zip *
98+
zip_client_perl:
99+
cd swagger_documentation/clients/perl && zip -r ../perl.zip *
100+
zip_client_python:
101+
cd swagger_documentation/clients/python && zip -r ../python.zip *
102+
zip_client_python-flask:
103+
cd swagger_documentation/clients/python-flask && zip -r ../python-flask.zip *
104+
zip_client_javascript:
105+
cd swagger_documentation/clients/javascript && zip -r ../javascript.zip *
106+
zip_client_typescript-axios:
107+
cd swagger_documentation/clients/typescript-axios && zip -r ../typescript-axios.zip *
108+
zip_client_nodejs-server:
109+
cd swagger_documentation/clients/nodejs-server && zip -r ../nodejs-server.zip *
110+
zip_client_ruby:
111+
cd swagger_documentation/clients/ruby && zip -r ../ruby.zip *
112+
zip_client_html2:
113+
cd swagger_documentation/clients/html2 && zip -r ../html2.zip *
114+
zip_client_swift:
115+
cd swagger_documentation/clients/swift && zip -r ../swift.zip *
116+
zip_client_kotlin:
117+
cd swagger_documentation/clients/kotlin && zip -r ../kotlin.zip *
118+
zip_client_rust:
119+
cd swagger_documentation/clients/rust && zip -r ../rust.zip *
120+
zip_client_clojure:
121+
cd swagger_documentation/clients/clojure && zip -r ../clojure.zip *
122+
zip_client_haskell:
123+
cd swagger_documentation/clients/haskell && zip -r ../haskell.zip *
124+
zip_client_javascript-closure-angular:
125+
cd swagger_documentation/clients/javascript-closure-angular && zip -r ../javascript-closure-angular.zip *
126+
zip_client_dynamic-html:
127+
cd swagger_documentation/clients/dynamic-html && zip -r ../dynamic-html.zip *
128+
zip_client_go-server:
129+
cd swagger_documentation/clients/go-server && zip -r ../go-server.zip *
130+
131+
# Client delete targets
132+
delete_client_go:
133+
rm -rf swagger_documentation/clients/go/
134+
delete_client_java:
135+
rm -rf swagger_documentation/clients/java/
136+
delete_client_csharp:
137+
rm -rf swagger_documentation/clients/csharp/
138+
delete_client_php:
139+
rm -rf swagger_documentation/clients/php/
140+
delete_client_perl:
141+
rm -rf swagger_documentation/clients/perl/
142+
delete_client_python:
143+
rm -rf swagger_documentation/clients/python/
144+
delete_client_python-flask:
145+
rm -rf swagger_documentation/clients/python-flask/
146+
delete_client_javascript:
147+
rm -rf swagger_documentation/clients/javascript/
148+
delete_client_typescript-axios:
149+
rm -rf swagger_documentation/clients/typescript-axios/
150+
delete_client_nodejs-server:
151+
rm -rf swagger_documentation/clients/nodejs-server/
152+
delete_client_ruby:
153+
rm -rf swagger_documentation/clients/ruby/
154+
delete_client_html2:
155+
rm -rf swagger_documentation/clients/html2/
156+
delete_client_swift:
157+
rm -rf swagger_documentation/clients/swift/
158+
delete_client_kotlin:
159+
rm -rf swagger_documentation/clients/kotlin/
160+
delete_client_rust:
161+
rm -rf swagger_documentation/clients/rust/
162+
delete_client_clojure:
163+
rm -rf swagger_documentation/clients/clojure/
164+
delete_client_haskell:
165+
rm -rf swagger_documentation/clients/haskell/
166+
delete_client_javascript-closure-angular:
167+
rm -rf swagger_documentation/clients/javascript-closure-angular/
168+
delete_client_dynamic-html:
169+
rm -rf swagger_documentation/clients/dynamic-html/
170+
delete_client_go-server:
171+
rm -rf swagger_documentation/clients/go-server/
172+
173+
# Aggregate client targets
174+
generate_client_dirs:
175+
make generate_client_go generate_client_java generate_client_csharp generate_client_php generate_client_perl generate_client_python generate_client_python-flask generate_client_javascript generate_client_typescript-axios generate_client_nodejs-server generate_client_ruby generate_client_html2 generate_client_swift generate_client_kotlin generate_client_rust generate_client_clojure generate_client_haskell generate_client_javascript-closure-angular generate_client_dynamic-html generate_client_go-server
176+
.PHONY: generate_client_dirs
177+
178+
zip_client_dirs:
179+
make zip_client_go zip_client_java zip_client_csharp zip_client_php zip_client_perl zip_client_python zip_client_python-flask zip_client_javascript zip_client_typescript-axios zip_client_nodejs-server zip_client_ruby zip_client_html2 zip_client_swift zip_client_kotlin zip_client_rust zip_client_clojure zip_client_haskell zip_client_javascript-closure-angular zip_client_dynamic-html zip_client_go-server
180+
.PHONY: zip_client_dirs
181+
182+
delete_client_dirs:
183+
make delete_client_go delete_client_java delete_client_csharp delete_client_php delete_client_perl delete_client_python delete_client_python-flask delete_client_javascript delete_client_typescript-axios delete_client_nodejs-server delete_client_ruby delete_client_html2 delete_client_swift delete_client_kotlin delete_client_rust delete_client_clojure delete_client_haskell delete_client_javascript-closure-angular delete_client_dynamic-html delete_client_go-server
184+
.PHONY: delete_client_dirs
185+
186+
clean:
187+
rm -rf swagger_documentation/clients/*
188+
.PHONY: clean
34189

190+
clients:
191+
make docs generate_client_dirs zip_client_dirs delete_client_dirs
192+
.PHONY: clients
35193

194+
# Docker targets
36195
container-images:
37196
${DOCKER_EXE} build ${DOCKER_BUILD_PARAMS} -t ${CIMAGE_DEPLOYMENT_TAG} --target deployment .
38197
${DOCKER_EXE} build ${DOCKER_BUILD_PARAMS} -t ${CIMAGE_LATEST_TAG} .
39198
.PHONY: container_images
40199

41200
container-build:
42-
${DOCKER_EXE} run --rm -v $(PWD):/app ${CIMAGE_DEPLOYMENT_TAG} make build
43201
${DOCKER_EXE} run --rm -v $(PWD):/app ${CIMAGE_DEPLOYMENT_TAG} make swagger_build
44202
.PHONY: container_build

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The home of figshare's API user documentation.
55
During the evolution of the API documentation there have been various iterations
66
and in this latest form we use Swagger to generate the pages and examples.
77

8-
This system requires the `swagger.json` file (which can be found in the _swagger_documentation_
8+
This system requires the `openapi.json` file (which can be found in the _swagger_documentation_
99
directory) to be in sync with the one found in the [Rest API](https://github.com/figshare/apiv1)
1010
repository at `figshare_api2/api_docs/`.
1111

@@ -49,7 +49,9 @@ Merging into master has to be done with `--ff-only`:
4949
To be able to build the documentation one needs to install the necessary
5050
dependencies:
5151

52-
$ make swagger_install
52+
$ python3 -m venv myenv
53+
$ source myenv/bin/activate
54+
$ make install
5355

5456
To build the documentation:
5557

0 commit comments

Comments
 (0)