You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/11/03 12:41:50 UTC
[camel] branch master updated: CAMEL-11991: camel-swagger - Allow
to specify data format so you can say a parameter is a date, password etc.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new a1d661c CAMEL-11991: camel-swagger - Allow to specify data format so you can say a parameter is a date, password etc.
a1d661c is described below
commit a1d661c4d33f826c6e88c468c9a0f7c6eafe635d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Nov 3 13:40:02 2017 +0100
CAMEL-11991: camel-swagger - Allow to specify data format so you can say a parameter is a date, password etc.
---
.../model/rest/RestOperationParamDefinition.java | 24 ++++++++++++++++++++++
.../RestOperationResponseHeaderDefinition.java | 24 ++++++++++++++++++++++
.../apache/camel/swagger/RestSwaggerReader.java | 22 ++++++++++++++++++++
.../camel/swagger/RestSwaggerReaderModelTest.java | 6 ++++--
.../camel/swagger/RestSwaggerReaderTest.java | 2 +-
5 files changed, 75 insertions(+), 3 deletions(-)
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationParamDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationParamDefinition.java
index 94335c3..dbc969e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationParamDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationParamDefinition.java
@@ -74,6 +74,9 @@ public class RestOperationParamDefinition {
@Metadata(defaultValue = "string")
private String dataType;
+ @XmlAttribute
+ private String dataFormat;
+
@XmlElementWrapper(name = "allowableValues")
@XmlElement(name = "value")
private List<String> allowableValues;
@@ -181,6 +184,17 @@ public class RestOperationParamDefinition {
this.dataType = dataType;
}
+ public String getDataFormat() {
+ return dataFormat;
+ }
+
+ /**
+ * Sets the Swagger Parameter data format.
+ */
+ public void setDataFormat(String dataFormat) {
+ this.dataFormat = dataFormat;
+ }
+
public List<String> getAllowableValues() {
if (allowableValues != null) {
return allowableValues;
@@ -286,6 +300,16 @@ public class RestOperationParamDefinition {
}
/**
+ * The data format of the parameter such as <tt>binary</tt>, <tt>date</tt>, <tt>date-time</tt>, <tt>password</tt>.
+ * The format is usually derived from the dataType alone. However you can set this option for more fine grained control
+ * of the format in use.
+ */
+ public RestOperationParamDefinition dataFormat(String type) {
+ setDataType(type);
+ return this;
+ }
+
+ /**
* Allowed values of the parameter when its an enum type
*/
public RestOperationParamDefinition allowableValues(List<String> allowableValues) {
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationResponseHeaderDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationResponseHeaderDefinition.java
index b3849c7..b4ca98e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationResponseHeaderDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestOperationResponseHeaderDefinition.java
@@ -62,6 +62,9 @@ public class RestOperationResponseHeaderDefinition {
@Metadata(defaultValue = "string")
private String dataType;
+ @XmlAttribute
+ private String dataFormat;
+
@XmlElementWrapper(name = "allowableValues")
@XmlElement(name = "value")
private List<String> allowableValues;
@@ -138,6 +141,17 @@ public class RestOperationResponseHeaderDefinition {
this.dataType = dataType;
}
+ public String getDataFormat() {
+ return dataFormat;
+ }
+
+ /**
+ * Sets the Swagger Parameter data format.
+ */
+ public void setDataFormat(String dataFormat) {
+ this.dataFormat = dataFormat;
+ }
+
public List<String> getAllowableValues() {
if (allowableValues != null) {
return allowableValues;
@@ -207,6 +221,16 @@ public class RestOperationResponseHeaderDefinition {
}
/**
+ * The data format of the parameter such as <tt>binary</tt>, <tt>date</tt>, <tt>date-time</tt>, <tt>password</tt>.
+ * The format is usually derived from the dataType alone. However you can set this option for more fine grained control
+ * of the format in use.
+ */
+ public RestOperationResponseHeaderDefinition dataFormat(String type) {
+ setDataType(type);
+ return this;
+ }
+
+ /**
* Allowed values of the header when its an enum type
*/
public RestOperationResponseHeaderDefinition allowableValues(List<String> allowableValues) {
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
index aa2122e..3f036d0 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
@@ -262,6 +262,9 @@ public class RestSwaggerReader {
if (param.getDataType() != null) {
serializableParameter.setType(param.getDataType());
+ if (param.getDataFormat() != null) {
+ serializableParameter.setFormat(param.getDataFormat());
+ }
if (param.getDataType().equalsIgnoreCase("array")) {
if (param.getArrayType() != null) {
if (param.getArrayType().equalsIgnoreCase("string")) {
@@ -383,9 +386,13 @@ public class RestSwaggerReader {
for (RestOperationResponseHeaderDefinition header : msg.getHeaders()) {
String name = header.getName();
String type = header.getDataType();
+ String format = header.getDataFormat();
if ("string".equals(type)) {
StringProperty sp = new StringProperty();
sp.setName(name);
+ if (format != null) {
+ sp.setFormat(format);
+ }
sp.setDescription(header.getDescription());
if (header.getAllowableValues() != null) {
sp.setEnum(header.getAllowableValues());
@@ -398,6 +405,9 @@ public class RestSwaggerReader {
} else if ("int".equals(type) || "integer".equals(type)) {
IntegerProperty ip = new IntegerProperty();
ip.setName(name);
+ if (format != null) {
+ ip.setFormat(format);
+ }
ip.setDescription(header.getDescription());
List<Integer> values;
@@ -416,6 +426,9 @@ public class RestSwaggerReader {
} else if ("long".equals(type)) {
LongProperty lp = new LongProperty();
lp.setName(name);
+ if (format != null) {
+ lp.setFormat(format);
+ }
lp.setDescription(header.getDescription());
List<Long> values;
@@ -434,6 +447,9 @@ public class RestSwaggerReader {
} else if ("float".equals(type)) {
FloatProperty fp = new FloatProperty();
fp.setName(name);
+ if (format != null) {
+ fp.setFormat(format);
+ }
fp.setDescription(header.getDescription());
List<Float> values;
@@ -452,6 +468,9 @@ public class RestSwaggerReader {
} else if ("double".equals(type)) {
DoubleProperty dp = new DoubleProperty();
dp.setName(name);
+ if (format != null) {
+ dp.setFormat(format);
+ }
dp.setDescription(header.getDescription());
List<Double> values;
@@ -470,6 +489,9 @@ public class RestSwaggerReader {
} else if ("boolean".equals(type)) {
BooleanProperty bp = new BooleanProperty();
bp.setName(name);
+ if (format != null) {
+ bp.setFormat(format);
+ }
bp.setDescription(header.getDescription());
// add example
if (header.getExample() != null) {
diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
index 2ad727a..f0352a1 100644
--- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
+++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
@@ -46,9 +46,10 @@ public class RestSwaggerReaderModelTest extends CamelTestSupport {
rest("/user").tag("dude").description("User rest service")
.consumes("application/json").produces("application/json")
- .get("/{id}").description("Find user by id").outType(User.class)
+ .get("/{id}/{date}").description("Find user by id and date").outType(User.class)
.responseMessage().message("The user returned").endResponseMessage()
- .param().name("id").type(RestParamType.path).description("The id of the user to get").dataType("integer").endParam()
+ .param().name("id").type(RestParamType.path).description("The id of the user to get").endParam()
+ .param().name("date").type(RestParamType.path).description("The date").dataFormat("date").endParam()
.to("bean:userService?method=getUser(${header.id})")
.put().description("Updates or create a user").type(User.class)
@@ -88,6 +89,7 @@ public class RestSwaggerReaderModelTest extends CamelTestSupport {
assertTrue(json.contains("\"$ref\" : \"#/definitions/User\""));
assertTrue(json.contains("\"x-className\""));
assertTrue(json.contains("\"format\" : \"org.apache.camel.swagger.User\""));
+ assertTrue(json.contains("\"type\" : \"date\""));
assertFalse(json.contains("\"enum\""));
context.stop();
}
diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
index 42ec223..5099136 100644
--- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
+++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
@@ -52,7 +52,7 @@ public class RestSwaggerReaderTest extends CamelTestSupport {
.example("success", "123").example("error", "-1").endResponseMessage()
.to("log:bye")
.post("/bye").description("To update the greeting message").consumes("application/xml").produces("application/xml")
- .param().name("greeting").type(RestParamType.body).dataType("string").description("Message to use as greeting").example("application/xml","<hello>Hi</hello>").endParam()
+ .param().name("greeting").type(RestParamType.body).dataType("string").description("Message to use as greeting").example("application/xml", "<hello>Hi</hello>").endParam()
.to("log:bye");
}
};
--
To stop receiving notification emails like this one, please contact
['"commits@camel.apache.org" <co...@camel.apache.org>'].