Merge pull request #5183 from swagger-api/issue-5182

fix generated operationId
This commit is contained in:
Tony Tam
2017-03-24 09:07:53 -07:00
committed by GitHub
11 changed files with 65 additions and 21 deletions

View File

@@ -1,16 +1,22 @@
package io.swagger.codegen.languages;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.codegen.*;
import io.swagger.codegen.CodegenModel;
import io.swagger.codegen.CodegenOperation;
import io.swagger.codegen.CodegenProperty;
import io.swagger.codegen.CodegenType;
import io.swagger.codegen.SupportingFile;
import io.swagger.models.Operation;
import io.swagger.models.Swagger;
import io.swagger.util.Yaml;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
@@ -24,7 +30,7 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
sourceFolder = "src/gen/java";
apiTestTemplateFiles.clear(); // TODO: add test template
embeddedTemplateDir = templateDir = "JavaInflector";
invokerPackage = "io.swagger.handler";
invokerPackage = "io.swagger.controllers";
artifactId = "swagger-inflector-server";
dateLibrary = "legacy"; //TODO: add joda support
@@ -35,7 +41,7 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
apiDocTemplateFiles.remove("api_doc.mustache");
apiPackage = System.getProperty("swagger.codegen.inflector.apipackage", "io.swagger.handler");
apiPackage = System.getProperty("swagger.codegen.inflector.apipackage", "io.swagger.controllers");
modelPackage = System.getProperty("swagger.codegen.inflector.modelpackage", "io.swagger.model");
additionalProperties.put("title", title);
@@ -173,6 +179,11 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
return objs;
}
@Override
protected String getOrGenerateOperationId(Operation operation, String path, String httpMethod) {
return super.getOrGenerateOperationId(operation, path, httpMethod.toUpperCase());
}
public String apiFilename(String templateName, String tag) {
String result = super.apiFilename(templateName, tag);
@@ -204,7 +215,7 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
if (name.length() == 0) {
return "DefaultController";
}
name = name.replaceAll("[^a-zA-Z0-9]+", "_"); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
name = name.replaceAll("[^a-zA-Z0-9]+", "_");
return camelize(name)+ "Controller";
}
}

View File

@@ -119,7 +119,7 @@
</repositories>
<properties>
<maven-plugin-version>1.0.0</maven-plugin-version>
<swagger-inflector-version>1.0.11</swagger-inflector-version>
<swagger-inflector-version>1.0.12</swagger-inflector-version>
<jetty-version>9.2.9.v20150224</jetty-version>
<logback-version>1.0.1</logback-version>
<junit-version>4.8.2</junit-version>

View File

@@ -1,13 +1,38 @@
controllerPackage: io.swagger.handler
controllerPackage: io.swagger.controllers
modelPackage: io.swagger.model
swaggerUrl: ./src/main/swagger/swagger.yaml
modelMappings:
# to enable explicit mappings, use this syntax:
DefinitionFromSwaggerSpecification: fully.qualified.path.to.Model
ApiResponse : io.swagger.model.ApiResponse
AdditionalPropertiesClass : io.swagger.model.AdditionalPropertiesClass
Animal : io.swagger.model.Animal
AnimalFarm : io.swagger.model.AnimalFarm
ArrayOfArrayOfNumberOnly : io.swagger.model.ArrayOfArrayOfNumberOnly
ArrayOfNumberOnly : io.swagger.model.ArrayOfNumberOnly
ArrayTest : io.swagger.model.ArrayTest
Capitalization : io.swagger.model.Capitalization
Cat : io.swagger.model.Cat
Category : io.swagger.model.Category
ClassModel : io.swagger.model.ClassModel
Client : io.swagger.model.Client
Dog : io.swagger.model.Dog
EnumArrays : io.swagger.model.EnumArrays
EnumClass : io.swagger.model.EnumClass
EnumTest : io.swagger.model.EnumTest
FormatTest : io.swagger.model.FormatTest
HasOnlyReadOnly : io.swagger.model.HasOnlyReadOnly
MapTest : io.swagger.model.MapTest
MixedPropertiesAndAdditionalPropertiesClass : io.swagger.model.MixedPropertiesAndAdditionalPropertiesClass
Model200Response : io.swagger.model.Model200Response
ModelApiResponse : io.swagger.model.ModelApiResponse
ModelReturn : io.swagger.model.ModelReturn
Name : io.swagger.model.Name
NumberOnly : io.swagger.model.NumberOnly
Order : io.swagger.model.Order
OuterEnum : io.swagger.model.OuterEnum
Pet : io.swagger.model.Pet
ReadOnlyFirst : io.swagger.model.ReadOnlyFirst
SpecialModelName : io.swagger.model.SpecialModelName
Tag : io.swagger.model.Tag
User : io.swagger.model.User

View File

@@ -14,6 +14,14 @@
<maven>2.2.0</maven>
</prerequisites>
<licenses>
<license>
<name>Unlicense</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<build>
<defaultGoal>install</defaultGoal>
<directory>target</directory>
@@ -111,10 +119,10 @@
</repositories>
<properties>
<maven-plugin-version>1.0.0</maven-plugin-version>
<swagger-inflector-version>1.0.4</swagger-inflector-version>
<swagger-inflector-version>1.0.12</swagger-inflector-version>
<jetty-version>9.2.9.v20150224</jetty-version>
<logback-version>1.0.1</logback-version>
<junit-version>4.8.2</junit-version>
<slf4j-version>1.6.3</slf4j-version>
</properties>
</project>
</project>

View File

@@ -1,4 +1,4 @@
package io.swagger.handler;
package io.swagger.controllers;
import io.swagger.inflector.models.RequestContext;
import io.swagger.inflector.models.ResponseContext;

View File

@@ -1,4 +1,4 @@
package io.swagger.handler;
package io.swagger.controllers;
import io.swagger.inflector.models.RequestContext;
import io.swagger.inflector.models.ResponseContext;

View File

@@ -1,4 +1,4 @@
package io.swagger.handler;
package io.swagger.controllers;
import io.swagger.inflector.models.RequestContext;
import io.swagger.inflector.models.ResponseContext;

View File

@@ -1,4 +1,4 @@
package io.swagger.handler;
package io.swagger.controllers;
import io.swagger.inflector.models.RequestContext;
import io.swagger.inflector.models.ResponseContext;

View File

@@ -1,4 +1,4 @@
package io.swagger.handler;
package io.swagger.controllers;
import io.swagger.inflector.models.RequestContext;
import io.swagger.inflector.models.ResponseContext;

View File

@@ -109,11 +109,11 @@ paths:
type: "array"
items:
type: "string"
default: "available"
enum:
- "available"
- "pending"
- "sold"
default: "available"
collectionFormat: "csv"
responses:
200:
@@ -647,10 +647,10 @@ paths:
type: "array"
items:
type: "string"
default: "$"
enum:
- ">"
- "$"
default: "$"
- name: "enum_form_string"
in: "formData"
description: "Form parameter enum test (string)"
@@ -668,10 +668,10 @@ paths:
type: "array"
items:
type: "string"
default: "$"
enum:
- ">"
- "$"
default: "$"
- name: "enum_header_string"
in: "header"
description: "Header parameter enum test (string)"
@@ -689,10 +689,10 @@ paths:
type: "array"
items:
type: "string"
default: "$"
enum:
- ">"
- "$"
default: "$"
- name: "enum_query_string"
in: "query"
description: "Query parameter enum test (string)"