Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 160c128

Browse files
committed
v2 individual endpoint docs (#96)
* Moves path generation out of the python client into default layers * Fixes java call sites * petstore regenerated * Removes paths with old names * Removes old autogen tests * Fixes deprecated method usage, removes unused imports * Samples regenerated * templates renamed * Adds pathEndpointTemplateFiles and uses it * Adds general code to generate path request bodies and parameters * Adds pathEndpointResponseTemplateFiles + pathEndpointResponseHeaderTemplateFiles * Further refactoring, adds pathEndpointTestTemplateFiles * Finishes generateEndpoints refactor * Petstore sample regenerated * Adds java code to generate endpoint docs * petstore regenerated, per endpoint docs exist * api docs updated * FIxes link to endpoint files * Moves endpoind docs into the tags folder * Creates and uses CodegenTag to store api module and classname info * Endpoint docs generated in correct location, tag and tags used in templates * Removes operationId prefix from endpoint_doc anchors in template * Petstore regen * Fixes anchor links, adds anchorContainsPeriod=true * Updates links in endpoiint files * Endpoint doc links updated * Fixes API link * Fixes api_doc links * Fixes host and exception info in endpoint docs * Updates readme endpoints * Adds request bodies * Samples regenerated * Fixes docs dor request bodies, omitted when not present * Fixes java tsts
1 parent 227fbda commit 160c128

File tree

1,090 files changed

+59559
-51502
lines changed

Some content is hidden

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

1,090 files changed

+59559
-51502
lines changed

modules/openapi-json-schema-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ public interface CodegenConfig {
128128

129129
String getOutputDir();
130130

131+
String packagePath();
132+
131133
void setOutputDir(String dir);
132134

133135
CodegenModel fromModel(String name, Schema schema);
@@ -156,12 +158,28 @@ public interface CodegenConfig {
156158

157159
Map<String, String> apiTemplateFiles();
158160

161+
Map<String, String> apiXToApiTemplateFiles();
162+
159163
Map<String, String> modelTemplateFiles();
160164

161165
Map<String, String> requestBodyTemplateFiles();
162166

163167
Map<String, String> requestBodyDocTemplateFiles();
164168

169+
Map<String, String> pathEndpointTemplateFiles();
170+
171+
Set<String> pathEndpointTestTemplateFiles();
172+
173+
Set<String> pathEndpointDocTemplateFiles();
174+
175+
Map<String, String> pathEndpointRequestBodyTemplateFiles();
176+
177+
Set<String> pathEndpointParameterTemplateFiles();
178+
179+
Map<String, String> pathEndpointResponseTemplateFiles();
180+
181+
Set<String> pathEndpointResponseHeaderTemplateFiles();
182+
165183
Map<String, String> apiTestTemplateFiles();
166184

167185
Map<String, String> modelTestTemplateFiles();
@@ -202,6 +220,10 @@ public interface CodegenConfig {
202220

203221
String toRequestBodyDocFilename(String componentName);
204222

223+
String toPathFileName(String path);
224+
225+
String toParameterFileName(String baseName);
226+
205227
String toModelImport(String refClass);
206228

207229
Map<String, String> toModelImportMap(String name);

modules/openapi-json-schema-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.openapitools.codegen;
1919

2020
import io.swagger.v3.oas.models.ExternalDocumentation;
21-
import io.swagger.v3.oas.models.tags.Tag;
2221

2322
import java.util.*;
2423
import java.util.stream.Collectors;
@@ -50,7 +49,7 @@ public class CodegenOperation {
5049
public List<CodegenParameter> requiredParams = new ArrayList<CodegenParameter>();
5150
public List<CodegenParameter> optionalParams = new ArrayList<CodegenParameter>();
5251
public List<CodegenSecurity> authMethods;
53-
public List<Tag> tags;
52+
public Map<String, CodegenTag> tags;
5453
public List<CodegenResponse> responses = new ArrayList<CodegenResponse>();
5554
public CodegenResponse defaultResponse = null;
5655
public List<CodegenCallback> callbacks = new ArrayList<>();
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.openapitools.codegen;
2+
import io.swagger.v3.oas.models.tags.Tag;
3+
4+
public class CodegenTag extends Tag {
5+
private String moduleName = null;
6+
private String className = null;
7+
8+
public String getModuleName() {
9+
return this.moduleName;
10+
}
11+
12+
public void setModuleName(String moduleName) {
13+
this.moduleName = moduleName;
14+
}
15+
16+
public String getClassName() {
17+
return this.className;
18+
}
19+
20+
public void setClassName(String className) {
21+
this.className = className;
22+
}
23+
}

modules/openapi-json-schema-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.samskivert.mustache.Mustache.Compiler;
2727
import com.samskivert.mustache.Mustache.Lambda;
2828

29+
import io.swagger.v3.oas.models.tags.Tag;
2930
import org.apache.commons.lang3.ObjectUtils;
3031
import org.apache.commons.text.StringEscapeUtils;
3132
import org.apache.commons.lang3.StringUtils;
@@ -179,9 +180,17 @@ apiTemplateFiles are for API outputs only (controllers/handlers).
179180
API templates may be written multiple times; APIs are grouped by tag and the file is written once per tag group.
180181
*/
181182
protected Map<String, String> apiTemplateFiles = new HashMap<>();
183+
protected Map<String, String> apiXToApiTemplateFiles = new HashMap<>();
182184
protected Map<String, String> modelTemplateFiles = new HashMap<>();
183185
protected Map<String, String> requestBodyTemplateFiles = new HashMap<>();
184186
protected Map<String, String> requestBodyDocTemplateFiles = new HashMap();
187+
protected Map<String, String> pathEndpointTemplateFiles = new HashMap();
188+
protected Set<String> pathEndpointDocTemplateFiles = new HashSet<>();
189+
protected Set<String> pathEndpointTestTemplateFiles = new HashSet<>();
190+
protected Map<String, String> pathEndpointRequestBodyTemplateFiles = new HashMap<>();
191+
protected Set<String> pathEndpointParameterTemplateFiles = new HashSet<>();
192+
protected Map<String, String> pathEndpointResponseTemplateFiles = new HashMap<>();
193+
protected Set<String> pathEndpointResponseHeaderTemplateFiles = new HashSet<>();
185194
protected Map<String, String> apiTestTemplateFiles = new HashMap<>();
186195
protected Map<String, String> modelTestTemplateFiles = new HashMap<>();
187196
protected Map<String, String> apiDocTemplateFiles = new HashMap<>();
@@ -539,6 +548,10 @@ public String packageName() {
539548
return packageName;
540549
}
541550

551+
public String packagePath() {
552+
return packageName.replace('.', File.separatorChar);
553+
}
554+
542555
/**
543556
* Index all CodegenModels by model name.
544557
*
@@ -1187,6 +1200,9 @@ public Map<String, String> apiTemplateFiles() {
11871200
return apiTemplateFiles;
11881201
}
11891202

1203+
@Override
1204+
public Map<String, String> apiXToApiTemplateFiles() { return apiXToApiTemplateFiles; }
1205+
11901206
@Override
11911207
public Map<String, String> modelTemplateFiles() {
11921208
return modelTemplateFiles;
@@ -1198,6 +1214,27 @@ public Map<String, String> modelTemplateFiles() {
11981214
@Override
11991215
public Map<String, String> requestBodyDocTemplateFiles() { return requestBodyDocTemplateFiles; }
12001216

1217+
@Override
1218+
public Map<String, String> pathEndpointTemplateFiles() { return pathEndpointTemplateFiles; }
1219+
1220+
@Override
1221+
public Set<String> pathEndpointDocTemplateFiles() { return pathEndpointDocTemplateFiles; }
1222+
1223+
@Override
1224+
public Set<String> pathEndpointTestTemplateFiles() { return pathEndpointTestTemplateFiles; }
1225+
1226+
@Override
1227+
public Map<String, String> pathEndpointRequestBodyTemplateFiles() { return pathEndpointRequestBodyTemplateFiles; }
1228+
1229+
@Override
1230+
public Set<String> pathEndpointParameterTemplateFiles() { return pathEndpointParameterTemplateFiles; }
1231+
1232+
@Override
1233+
public Map<String, String> pathEndpointResponseTemplateFiles() { return pathEndpointResponseTemplateFiles; }
1234+
1235+
@Override
1236+
public Set<String> pathEndpointResponseHeaderTemplateFiles() { return pathEndpointResponseHeaderTemplateFiles; }
1237+
12011238
public String toRequestBodyFilename(String componentName) {
12021239
return toModuleFilename(componentName);
12031240
}
@@ -1477,6 +1514,14 @@ public String toModuleFilename(String name) {
14771514
return camelize(name);
14781515
}
14791516

1517+
public String toPathFileName(String name) {
1518+
return toModuleFilename(name);
1519+
}
1520+
1521+
@Override
1522+
public String toParameterFileName(String basename) {
1523+
return toModuleFilename(basename);
1524+
}
14801525

14811526
/**
14821527
* Return the capitalized file name of the model test
@@ -4189,6 +4234,27 @@ public CodegenOperation fromOperation(String path,
41894234
op.servers = fromServers(servers);
41904235
}
41914236

4237+
// tags
4238+
List<String> operationtTagNames = operation.getTags();
4239+
Map<String, CodegenTag> codegenTags = new HashMap<>();
4240+
if (operationtTagNames != null) {
4241+
for (String tagName: operation.getTags()) {
4242+
CodegenTag codegenTag = new CodegenTag();
4243+
codegenTag.setName(tagName);
4244+
codegenTag.setModuleName(toApiFilename(tagName));
4245+
codegenTag.setClassName(toApiName(tagName));
4246+
codegenTags.put(tagName, codegenTag);
4247+
}
4248+
} else {
4249+
String tagName = "default";
4250+
CodegenTag codegenTag = new CodegenTag();
4251+
codegenTag.setName(tagName);
4252+
codegenTag.setModuleName(toApiFilename(tagName));
4253+
codegenTag.setClassName(toApiName(tagName));
4254+
codegenTags.put(tagName, codegenTag);
4255+
}
4256+
op.tags = codegenTags;
4257+
41924258
// store the original operationId for plug-in
41934259
op.operationIdOriginal = operation.getOperationId();
41944260

0 commit comments

Comments
 (0)