updated to use swagger 1.1.0

This commit is contained in:
Tony Tam 2012-09-23 18:43:14 -07:00
parent 236a9697ad
commit e2dbe61adf
2 changed files with 30 additions and 27 deletions

View File

@ -1,8 +1,11 @@
package com.wordnik.client; package {{package}};
import com.wordnik.swagger.core.util.JsonUtil; import com.wordnik.swagger.core.util.JsonUtil;
import org.codehaus.jackson.type.JavaType; import com.fasterxml.jackson.core.JsonGenerator.Feature;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.ClientResponse;
@ -28,7 +31,7 @@ public class ApiInvoker {
} }
public void addDefaultHeader(String key, String value) { public void addDefaultHeader(String key, String value) {
defaultHeaderMap.put(key, value); defaultHeaderMap.put(key, value);
} }
public String escapeString(String str) { public String escapeString(String str) {
@ -38,7 +41,7 @@ public class ApiInvoker {
public static Object deserialize(String json, String containerType, Class cls) throws ApiException { public static Object deserialize(String json, String containerType, Class cls) throws ApiException {
try{ try{
if("List".equals(containerType)) { if("List".equals(containerType)) {
JavaType typeInfo = org.codehaus.jackson.map.type.TypeFactory.collectionType(List.class, cls); JavaType typeInfo = JsonUtil.getJsonMapper().getTypeFactory().constructCollectionType(List.class, cls);
List response = (List<?>) JsonUtil.getJsonMapper().readValue(json, typeInfo); List response = (List<?>) JsonUtil.getJsonMapper().readValue(json, typeInfo);
return response; return response;
} }
@ -74,58 +77,58 @@ public class ApiInvoker {
StringBuilder b = new StringBuilder(); StringBuilder b = new StringBuilder();
for(String key : queryParams.keySet()) { for(String key : queryParams.keySet()) {
String value = queryParams.get(key); String value = queryParams.get(key);
if (value != null){ if (value != null){
if(b.toString().length() == 0) b.append("?"); if(b.toString().length() == 0) b.append("?");
else b.append("&"); else b.append("&");
b.append(escapeString(key)).append("=").append(escapeString(value)); b.append(escapeString(key)).append("=").append(escapeString(value));
} }
} }
String querystring = b.toString(); String querystring = b.toString();
Builder builder = client.resource(host + path + querystring).type("application/json"); Builder builder = client.resource(host + path + querystring).type("application/json");
for(String key : headerParams.keySet()) { for(String key : headerParams.keySet()) {
builder.header(key, headerParams.get(key)); builder.header(key, headerParams.get(key));
} }
for(String key : defaultHeaderMap.keySet()) { for(String key : defaultHeaderMap.keySet()) {
if(!headerParams.containsKey(key)) { if(!headerParams.containsKey(key)) {
builder.header(key, defaultHeaderMap.get(key)); builder.header(key, defaultHeaderMap.get(key));
} }
} }
ClientResponse response = null; ClientResponse response = null;
if("GET".equals(method)) { if("GET".equals(method)) {
response = (ClientResponse) builder.get(ClientResponse.class); response = (ClientResponse) builder.get(ClientResponse.class);
} }
else if ("POST".equals(method)) { else if ("POST".equals(method)) {
response = builder.post(ClientResponse.class, serialize(body)); response = builder.post(ClientResponse.class, serialize(body));
} }
else if ("PUT".equals(method)) { else if ("PUT".equals(method)) {
response = builder.put(ClientResponse.class, serialize(body)); response = builder.put(ClientResponse.class, serialize(body));
} }
else if ("DELETE".equals(method)) { else if ("DELETE".equals(method)) {
response = builder.delete(ClientResponse.class, serialize(body)); response = builder.delete(ClientResponse.class, serialize(body));
} }
else { else {
throw new ApiException(500, "unknown method type " + method); throw new ApiException(500, "unknown method type " + method);
} }
if(response.getClientResponseStatus() == ClientResponse.Status.OK) { if(response.getClientResponseStatus() == ClientResponse.Status.OK) {
return (String) response.getEntity(String.class); return (String) response.getEntity(String.class);
} }
else { else {
throw new ApiException( throw new ApiException(
response.getClientResponseStatus().getStatusCode(), response.getClientResponseStatus().getStatusCode(),
response.getEntity(String.class)); response.getEntity(String.class));
} }
} }
private Client getClient(String host) { private Client getClient(String host) {
if(!hostMap.containsKey(host)) { if(!hostMap.containsKey(host)) {
Client client = Client.create(); Client client = Client.create();
client.addFilter(new LoggingFilter()); client.addFilter(new LoggingFilter());
hostMap.put(host, client); hostMap.put(host, client);
} }
return hostMap.get(host); return hostMap.get(host);
} }
} }

View File

@ -213,7 +213,7 @@
<properties> <properties>
<jersey-version>1.7</jersey-version> <jersey-version>1.7</jersey-version>
<swagger-core-version>1.02-SNAPSHOT</swagger-core-version> <swagger-core-version>1.1.0</swagger-core-version>
<scala-version>2.9.1-1</scala-version> <scala-version>2.9.1-1</scala-version>
<junit-version>4.8.1</junit-version> <junit-version>4.8.1</junit-version>
<maven-plugin.version>1.0.0</maven-plugin.version> <maven-plugin.version>1.0.0</maven-plugin.version>