mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-03 14:10:56 +00:00
updated swagger definitions for opts
This commit is contained in:
parent
b3d29bfb56
commit
cdd20ac408
@ -26,35 +26,36 @@ public class DynamicSwaggerConfig extends BeanConfig {
|
|||||||
Parameter framework = post.getParameters().get(0);
|
Parameter framework = post.getParameters().get(0);
|
||||||
if (framework instanceof PathParameter) {
|
if (framework instanceof PathParameter) {
|
||||||
PathParameter param = (PathParameter) framework;
|
PathParameter param = (PathParameter) framework;
|
||||||
StringBuilder b = new StringBuilder();
|
|
||||||
for (String client : clients) {
|
|
||||||
if (b.toString().length() > 0) {
|
|
||||||
b.append(", ");
|
|
||||||
}
|
|
||||||
b.append(client);
|
|
||||||
}
|
|
||||||
param.setDescription("available clients: " + b.toString());
|
|
||||||
param.setEnum(clients);
|
param.setEnum(clients);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Operation get = clientPath.getGet();
|
||||||
|
if(get != null) {
|
||||||
|
framework = get.getParameters().get(0);
|
||||||
|
if (framework instanceof PathParameter) {
|
||||||
|
PathParameter param = (PathParameter) framework;
|
||||||
|
param.setEnum(clients);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Path serverPath = swagger.getPaths().get("/gen/servers/{framework}");
|
Path serverPath = swagger.getPaths().get("/gen/servers/{framework}");
|
||||||
// update the path description based on what servers are available via SPI
|
|
||||||
if (serverPath != null) {
|
if (serverPath != null) {
|
||||||
Operation post = serverPath.getPost();
|
Operation post = serverPath.getPost();
|
||||||
Parameter framework = post.getParameters().get(0);
|
Parameter framework = post.getParameters().get(0);
|
||||||
if (framework instanceof PathParameter) {
|
if (framework instanceof PathParameter) {
|
||||||
PathParameter param = (PathParameter) framework;
|
PathParameter param = (PathParameter) framework;
|
||||||
StringBuilder b = new StringBuilder();
|
|
||||||
for (String server : servers) {
|
|
||||||
if (b.toString().length() > 0) {
|
|
||||||
b.append(", ");
|
|
||||||
}
|
|
||||||
b.append(server);
|
|
||||||
}
|
|
||||||
param.setDescription("available servers: " + b.toString());
|
|
||||||
param.setEnum(servers);
|
param.setEnum(servers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Operation get = serverPath.getGet();
|
||||||
|
if(get != null) {
|
||||||
|
framework = get.getParameters().get(0);
|
||||||
|
if (framework instanceof PathParameter) {
|
||||||
|
PathParameter param = (PathParameter) framework;
|
||||||
|
param.setEnum(servers);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return swagger.info(getInfo())
|
return swagger.info(getInfo())
|
||||||
|
@ -109,7 +109,7 @@ public class Generator {
|
|||||||
|
|
||||||
codegenConfig.setOutputDir(outputFolder);
|
codegenConfig.setOutputDir(outputFolder);
|
||||||
|
|
||||||
Json.prettyPrint(clientOpts);
|
LOGGER.debug(Json.pretty(clientOpts));
|
||||||
|
|
||||||
clientOptInput.setConfig(codegenConfig);
|
clientOptInput.setConfig(codegenConfig);
|
||||||
|
|
||||||
@ -124,6 +124,20 @@ public class Generator {
|
|||||||
} else {
|
} else {
|
||||||
throw new BadRequestException(400, "A target generation was attempted, but no files were created!");
|
throw new BadRequestException(400, "A target generation was attempted, but no files were created!");
|
||||||
}
|
}
|
||||||
|
for(File file: files) {
|
||||||
|
try {
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
LOGGER.error("unable to delete file " + file.getAbsolutePath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
new File(outputFolder).delete();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
LOGGER.error("unable to delete output folder " + outputFolder);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BadRequestException(500, "Unable to build target: " + e.getMessage());
|
throw new BadRequestException(500, "Unable to build target: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -12,16 +12,14 @@ import io.swagger.generator.model.Generated;
|
|||||||
import io.swagger.generator.model.GeneratorInput;
|
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 org.apache.commons.io.FileUtils;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.ws.rs.*;
|
||||||
import javax.ws.rs.core.Context;
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.POST;
|
|
||||||
import javax.ws.rs.Path;
|
|
||||||
import javax.ws.rs.PathParam;
|
|
||||||
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.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Path("/gen")
|
@Path("/gen")
|
||||||
@ -35,6 +33,9 @@ public class SwaggerResource {
|
|||||||
@Path("/download/{fileId}")
|
@Path("/download/{fileId}")
|
||||||
@Produces({MediaType.APPLICATION_OCTET_STREAM})
|
@Produces({MediaType.APPLICATION_OCTET_STREAM})
|
||||||
@ApiOperation(value = "Downloads a pre-generated file",
|
@ApiOperation(value = "Downloads a pre-generated file",
|
||||||
|
notes = "A valid `fileId` is generated by the `/clients/{language}` or `/servers/{language}` POST " +
|
||||||
|
"operations. The fileId code can be used just once, after which a new `fileId` will need to " +
|
||||||
|
"be requested.",
|
||||||
response = String.class,
|
response = String.class,
|
||||||
tags = {"clients", "servers"})
|
tags = {"clients", "servers"})
|
||||||
public Response downloadFile(@PathParam("fileId") String fileId) throws Exception {
|
public Response downloadFile(@PathParam("fileId") String fileId) throws Exception {
|
||||||
@ -42,7 +43,15 @@ public class SwaggerResource {
|
|||||||
System.out.println("looking for fileId " + fileId);
|
System.out.println("looking for fileId " + fileId);
|
||||||
System.out.println("got filename " + g.getFilename());
|
System.out.println("got filename " + g.getFilename());
|
||||||
if (g.getFilename() != null) {
|
if (g.getFilename() != null) {
|
||||||
byte[] bytes = org.apache.commons.io.FileUtils.readFileToByteArray(new java.io.File(g.getFilename()));
|
File file = new java.io.File(g.getFilename());
|
||||||
|
byte[] bytes = org.apache.commons.io.FileUtils.readFileToByteArray(file);
|
||||||
|
|
||||||
|
try {
|
||||||
|
FileUtils.deleteDirectory(file.getParentFile());
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
System.out.println("failed to delete file " + file.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
return Response.ok(bytes, "application/zip")
|
return Response.ok(bytes, "application/zip")
|
||||||
.header("Content-Disposition", "attachment; filename=\"" + g.getFriendlyName() + "-generated.zip\"")
|
.header("Content-Disposition", "attachment; filename=\"" + g.getFriendlyName() + "-generated.zip\"")
|
||||||
@ -57,7 +66,8 @@ public class SwaggerResource {
|
|||||||
@POST
|
@POST
|
||||||
@Path("/clients/{language}")
|
@Path("/clients/{language}")
|
||||||
@ApiOperation(
|
@ApiOperation(
|
||||||
value = "Generates a client library based on the config",
|
value = "Generates a client library",
|
||||||
|
notes = "Accepts a `GeneratorInput` options map for spec location and generation options",
|
||||||
response = ResponseCode.class,
|
response = ResponseCode.class,
|
||||||
tags = "clients")
|
tags = "clients")
|
||||||
public Response generateClient(
|
public Response generateClient(
|
||||||
@ -78,7 +88,7 @@ public class SwaggerResource {
|
|||||||
|
|
||||||
String host = scheme + "://" + request.getServerName() + port;
|
String host = scheme + "://" + request.getServerName() + port;
|
||||||
if (filename != null) {
|
if (filename != null) {
|
||||||
String code = String.valueOf(System.currentTimeMillis());
|
String code = String.valueOf(UUID.randomUUID().toString());
|
||||||
Generated g = new Generated();
|
Generated g = new Generated();
|
||||||
g.setFilename(filename);
|
g.setFilename(filename);
|
||||||
g.setFriendlyName(language + "-client");
|
g.setFriendlyName(language + "-client");
|
||||||
@ -114,7 +124,7 @@ public class SwaggerResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/server/{framework}")
|
@Path("/servers/{framework}")
|
||||||
@Produces({MediaType.APPLICATION_JSON})
|
@Produces({MediaType.APPLICATION_JSON})
|
||||||
@ApiOperation(
|
@ApiOperation(
|
||||||
value = "Returns options for a server framework",
|
value = "Returns options for a server framework",
|
||||||
@ -161,7 +171,8 @@ public class SwaggerResource {
|
|||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/servers/{framework}")
|
@Path("/servers/{framework}")
|
||||||
@ApiOperation(value = "Generates a server library for the supplied server framework",
|
@ApiOperation(value = "Generates a server library",
|
||||||
|
notes = "Accepts a `GeneratorInput` options map for spec location and generation options.",
|
||||||
response = ResponseCode.class,
|
response = ResponseCode.class,
|
||||||
tags = "servers")
|
tags = "servers")
|
||||||
public Response generateServerForLanguage(
|
public Response generateServerForLanguage(
|
||||||
@ -178,7 +189,7 @@ public class SwaggerResource {
|
|||||||
String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
|
String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
|
||||||
|
|
||||||
if (filename != null) {
|
if (filename != null) {
|
||||||
String code = String.valueOf(System.currentTimeMillis());
|
String code = String.valueOf(UUID.randomUUID().toString());
|
||||||
Generated g = new Generated();
|
Generated g = new Generated();
|
||||||
g.setFilename(filename);
|
g.setFilename(filename);
|
||||||
g.setFriendlyName(framework + "-server");
|
g.setFriendlyName(framework + "-server");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user