mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-03 22:20: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);
|
||||
if (framework instanceof PathParameter) {
|
||||
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);
|
||||
}
|
||||
|
||||
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}");
|
||||
// update the path description based on what servers are available via SPI
|
||||
if (serverPath != null) {
|
||||
Operation post = serverPath.getPost();
|
||||
Parameter framework = post.getParameters().get(0);
|
||||
if (framework instanceof PathParameter) {
|
||||
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);
|
||||
}
|
||||
|
||||
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())
|
||||
|
@ -109,7 +109,7 @@ public class Generator {
|
||||
|
||||
codegenConfig.setOutputDir(outputFolder);
|
||||
|
||||
Json.prettyPrint(clientOpts);
|
||||
LOGGER.debug(Json.pretty(clientOpts));
|
||||
|
||||
clientOptInput.setConfig(codegenConfig);
|
||||
|
||||
@ -124,6 +124,20 @@ public class Generator {
|
||||
} else {
|
||||
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) {
|
||||
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.ResponseCode;
|
||||
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.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.Response;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
@Path("/gen")
|
||||
@ -35,6 +33,9 @@ public class SwaggerResource {
|
||||
@Path("/download/{fileId}")
|
||||
@Produces({MediaType.APPLICATION_OCTET_STREAM})
|
||||
@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,
|
||||
tags = {"clients", "servers"})
|
||||
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("got filename " + g.getFilename());
|
||||
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")
|
||||
.header("Content-Disposition", "attachment; filename=\"" + g.getFriendlyName() + "-generated.zip\"")
|
||||
@ -57,7 +66,8 @@ public class SwaggerResource {
|
||||
@POST
|
||||
@Path("/clients/{language}")
|
||||
@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,
|
||||
tags = "clients")
|
||||
public Response generateClient(
|
||||
@ -78,7 +88,7 @@ public class SwaggerResource {
|
||||
|
||||
String host = scheme + "://" + request.getServerName() + port;
|
||||
if (filename != null) {
|
||||
String code = String.valueOf(System.currentTimeMillis());
|
||||
String code = String.valueOf(UUID.randomUUID().toString());
|
||||
Generated g = new Generated();
|
||||
g.setFilename(filename);
|
||||
g.setFriendlyName(language + "-client");
|
||||
@ -114,7 +124,7 @@ public class SwaggerResource {
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/server/{framework}")
|
||||
@Path("/servers/{framework}")
|
||||
@Produces({MediaType.APPLICATION_JSON})
|
||||
@ApiOperation(
|
||||
value = "Returns options for a server framework",
|
||||
@ -161,7 +171,8 @@ public class SwaggerResource {
|
||||
|
||||
@POST
|
||||
@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,
|
||||
tags = "servers")
|
||||
public Response generateServerForLanguage(
|
||||
@ -178,7 +189,7 @@ public class SwaggerResource {
|
||||
String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
|
||||
|
||||
if (filename != null) {
|
||||
String code = String.valueOf(System.currentTimeMillis());
|
||||
String code = String.valueOf(UUID.randomUUID().toString());
|
||||
Generated g = new Generated();
|
||||
g.setFilename(filename);
|
||||
g.setFriendlyName(framework + "-server");
|
||||
|
Loading…
x
Reference in New Issue
Block a user