Skip to content

Commit fa29dde

Browse files
swagger to openapi updates
1 parent 00b6c5e commit fa29dde

File tree

160 files changed

+154739
-163218
lines changed

Some content is hidden

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

160 files changed

+154739
-163218
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

APIv2/index.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

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: 176 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +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.figshare.network
7+
API_SCHEME:=https
68

7-
build:
8-
mkdocs build
9-
.PHONY: build
109

11-
publish:
12-
mkdocs gh-deploy
13-
.PHONY: publish
10+
install:
11+
cd swagger_documentation && pip install -r requirements.txt
12+
.PHONY: install
13+
14+
format:
15+
black -l 120 -t py39 ./swagger_documentation
16+
.PHONY: format
1417

1518
server:
1619
cd swagger_documentation && python -m http.server 8000
1720
.PHONY: server
1821

19-
install:
20-
pip install mkdocs
21-
.PHONY: install
22+
# Swagger/OpenAPI targets
23+
swagger:
24+
cd swagger_documentation && python parse_swagger.py ${API_URL} ${API_SCHEME}
25+
.PHONY: swagger
2226

23-
format:
24-
black -l 120 -t py39 ./swagger_documentation
25-
.PHONY: format
27+
docs:
28+
cd swagger_documentation/docs && python merge_docs_to_swagger.py
29+
.PHONY: docs
30+
31+
client_samples_generate:
32+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g html2 -o clients_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
2642

2743
swagger_build:
28-
cd swagger_documentation && make documentation
44+
make docs swagger client_samples clients
2945
.PHONY: swagger_build
3046

31-
swagger_install:
32-
cd swagger_documentation && make install
33-
.PHONY: swagger_install
47+
# Client generation targets
48+
generate_client_go:
49+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g go -o clients/go/
50+
generate_client_java:
51+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g java -o clients/java/
52+
generate_client_csharp:
53+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g csharp -o clients/csharp/
54+
generate_client_php:
55+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g php -o clients/php/
56+
generate_client_perl:
57+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g perl -o clients/perl/
58+
generate_client_python:
59+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g python -o clients/python/
60+
generate_client_python-flask:
61+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g python-flask -o clients/python-flask/
62+
generate_client_javascript:
63+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g javascript -o clients/javascript/
64+
generate_client_typescript-axios:
65+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.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 swagger.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 swagger.json -g ruby -o clients/ruby/
70+
generate_client_html2:
71+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g html2 -o clients/html2/
72+
generate_client_swift:
73+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g swift5 -o clients/swift/
74+
generate_client_kotlin:
75+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g kotlin -o clients/kotlin/
76+
generate_client_rust:
77+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g rust -o clients/rust/
78+
generate_client_clojure:
79+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.json -g clojure -o clients/clojure/
80+
generate_client_haskell:
81+
cd swagger_documentation && java -jar openapi-generator-cli.jar generate -i swagger.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 swagger.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 swagger.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 swagger.json -g go-server -o clients/go-server/
88+
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
189+
190+
clients:
191+
make docs generate_client_dirs zip_client_dirs delete_client_dirs
192+
.PHONY: clients
34193

194+
# Docker targets
35195
container-images:
36196
${DOCKER_EXE} build ${DOCKER_BUILD_PARAMS} -t ${CIMAGE_DEPLOYMENT_TAG} --target deployment .
37197
${DOCKER_EXE} build ${DOCKER_BUILD_PARAMS} -t ${CIMAGE_LATEST_TAG} .
38198
.PHONY: container_images
39199

40200
container-build:
41-
${DOCKER_EXE} run --rm -v $(PWD):/app ${CIMAGE_DEPLOYMENT_TAG} make build
42201
${DOCKER_EXE} run --rm -v $(PWD):/app ${CIMAGE_DEPLOYMENT_TAG} make swagger_build
43202
.PHONY: container_build

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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)