made host dynamic for link generation

This commit is contained in:
Tony Tam 2015-09-28 08:51:39 -07:00
parent 2ea3816e65
commit d5cf2b6cfe

View File

@ -12,6 +12,7 @@ import io.swagger.generator.model.GeneratorInput;
import io.swagger.generator.model.ResponseCode; import io.swagger.generator.model.ResponseCode;
import io.swagger.generator.online.Generator; import io.swagger.generator.online.Generator;
import javax.ws.rs.core.Context;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.POST; import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
@ -19,6 +20,7 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -61,11 +63,13 @@ public class SwaggerResource {
response = ResponseCode.class, response = ResponseCode.class,
tags = "clients") tags = "clients")
public Response generateClient( public Response generateClient(
@Context HttpServletRequest request,
@ApiParam(value = "The target language for the client library", allowableValues = "android,java,php,objc,docs", required = true) @PathParam("language") String language, @ApiParam(value = "The target language for the client library", allowableValues = "android,java,php,objc,docs", required = true) @PathParam("language") String language,
@ApiParam(value = "Configuration for building the client library", required = true) GeneratorInput opts) throws Exception { @ApiParam(value = "Configuration for building the client library", required = true) GeneratorInput opts) throws Exception {
String filename = Generator.generateClient(language, opts); String filename = Generator.generateClient(language, opts);
String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
if (filename != null) { if (filename != null) {
String code = String.valueOf(System.currentTimeMillis()); String code = String.valueOf(System.currentTimeMillis());
Generated g = new Generated(); Generated g = new Generated();
@ -73,7 +77,7 @@ public class SwaggerResource {
g.setFriendlyName(language + "-client"); g.setFriendlyName(language + "-client");
fileMap.put(code, g); fileMap.put(code, g);
System.out.println(code + ", " + filename); System.out.println(code + ", " + filename);
String link = "http://generator.swagger.io/api/gen/download/" + code; String link = host + "/api/gen/download/" + code;
return Response.ok().entity(new ResponseCode(code, link)).build(); return Response.ok().entity(new ResponseCode(code, link)).build();
} else { } else {
return Response.status(500).build(); return Response.status(500).build();
@ -110,6 +114,7 @@ public class SwaggerResource {
response = ResponseCode.class, response = ResponseCode.class,
tags = "servers") tags = "servers")
public Response generateServerForLanguage( public Response generateServerForLanguage(
@Context HttpServletRequest request,
@ApiParam(value = "framework", allowableValues = "jaxrs,nodejs", required = true) @PathParam("framework") String framework, @ApiParam(value = "framework", allowableValues = "jaxrs,nodejs", required = true) @PathParam("framework") String framework,
@ApiParam(value = "parameters", required = true) GeneratorInput opts) @ApiParam(value = "parameters", required = true) GeneratorInput opts)
throws Exception { throws Exception {
@ -119,6 +124,8 @@ public class SwaggerResource {
String filename = Generator.generateServer(framework, opts); String filename = Generator.generateServer(framework, opts);
System.out.println("generated name: " + filename); System.out.println("generated name: " + filename);
String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
if (filename != null) { if (filename != null) {
String code = String.valueOf(System.currentTimeMillis()); String code = String.valueOf(System.currentTimeMillis());
Generated g = new Generated(); Generated g = new Generated();
@ -126,7 +133,7 @@ public class SwaggerResource {
g.setFriendlyName(framework + "-server"); g.setFriendlyName(framework + "-server");
fileMap.put(code, g); fileMap.put(code, g);
System.out.println(code + ", " + filename); System.out.println(code + ", " + filename);
String link = "http://generator.swagger.io/api/gen/download/" + code; String link = host + "/api/gen/download/" + code;
return Response.ok().entity(new ResponseCode(code, link)).build(); return Response.ok().entity(new ResponseCode(code, link)).build();
} else { } else {
return Response.status(500).build(); return Response.status(500).build();