use of io.gravitee.management.model.NewApiEntity in project gravitee-management-rest-api by gravitee-io.
the class SwaggerService_PrepareTest method shouldPrepareAPIFromSwaggerV2_yaml.
@Test
public void shouldPrepareAPIFromSwaggerV2_yaml() throws IOException {
URL url = Resources.getResource("io/gravitee/management/service/swagger-petstore.yaml");
String descriptor = Resources.toString(url, Charsets.UTF_8);
ImportSwaggerDescriptorEntity swaggerDescriptor = new ImportSwaggerDescriptorEntity();
swaggerDescriptor.setPayload(descriptor);
NewApiEntity api = swaggerService.prepare(swaggerDescriptor);
assertEquals("1.0.0", api.getVersion());
assertEquals("Swagger Petstore (Simple)", api.getName());
assertEquals("http://petstore.swagger.io/api", api.getEndpoint());
assertEquals(2, api.getPaths().size());
assertEquals("/pets/:id", api.getPaths().get(1));
}
use of io.gravitee.management.model.NewApiEntity in project gravitee-management-rest-api by gravitee-io.
the class SwaggerService_PrepareTest method shouldPrepareAPIFromSwaggerV2_json.
@Test
public void shouldPrepareAPIFromSwaggerV2_json() throws IOException {
URL url = Resources.getResource("io/gravitee/management/service/swagger-petstore.json");
String descriptor = Resources.toString(url, Charsets.UTF_8);
ImportSwaggerDescriptorEntity swaggerDescriptor = new ImportSwaggerDescriptorEntity();
swaggerDescriptor.setPayload(descriptor);
NewApiEntity api = swaggerService.prepare(swaggerDescriptor);
assertEquals("1.0.0", api.getVersion());
assertEquals("Swagger Petstore (Simple)", api.getName());
assertEquals("http://petstore.swagger.io/api", api.getEndpoint());
assertEquals(2, api.getPaths().size());
assertEquals("/pets/:id", api.getPaths().get(1));
}
use of io.gravitee.management.model.NewApiEntity in project gravitee-management-rest-api by gravitee-io.
the class ApisResourceTest method shouldNotCreateApi_withoutPath.
@Test
public void shouldNotCreateApi_withoutPath() {
final NewApiEntity apiEntity = new NewApiEntity();
apiEntity.setName("My beautiful api");
apiEntity.setVersion("v1");
apiEntity.setDescription("my description");
ApiEntity returnedApi = new ApiEntity();
returnedApi.setId("my-beautiful-api");
doReturn(returnedApi).when(apiService).create(Mockito.any(NewApiEntity.class), Mockito.eq(USER_NAME));
final Response response = target().request().post(Entity.json(apiEntity));
assertEquals(HttpStatusCode.BAD_REQUEST_400, response.getStatus());
}
use of io.gravitee.management.model.NewApiEntity in project gravitee-management-rest-api by gravitee-io.
the class ApisResourceTest method shouldCreateApi.
@Test
public void shouldCreateApi() {
final NewApiEntity apiEntity = new NewApiEntity();
apiEntity.setName("My beautiful api");
apiEntity.setVersion("v1");
apiEntity.setDescription("my description");
apiEntity.setContextPath("/myapi");
apiEntity.setEndpoint("http://localhost:9099/");
ApiEntity returnedApi = new ApiEntity();
returnedApi.setId("my-beautiful-api");
doReturn(returnedApi).when(apiService).create(Mockito.any(NewApiEntity.class), Mockito.eq(USER_NAME));
final Response response = target().request().post(Entity.json(apiEntity));
assertEquals(HttpStatusCode.CREATED_201, response.getStatus());
}
use of io.gravitee.management.model.NewApiEntity in project gravitee-management-rest-api by gravitee-io.
the class SwaggerServiceImpl method prepare.
public NewApiEntity prepare(ImportSwaggerDescriptorEntity swaggerDescriptor) {
Swagger swagger = null;
switch(swaggerDescriptor.getVersion()) {
case VERSION_1_0:
try {
logger.info("Loading an old Swagger descriptor from {}", swaggerDescriptor.getPayload());
// For spec < 2.0, only read by url is possible
swagger = new SwaggerCompatConverter().read(swaggerDescriptor.getPayload());
} catch (IOException ioe) {
logger.error("Can not read old Swagger specification", ioe);
throw new SwaggerDescriptorException();
}
case VERSION_2_0:
if (swaggerDescriptor.getType() == ImportSwaggerDescriptorEntity.Type.INLINE) {
logger.info("Loading an inline Swagger descriptor");
swagger = new SwaggerParser().parse(swaggerDescriptor.getPayload());
} else if (swaggerDescriptor.getType() == ImportSwaggerDescriptorEntity.Type.URL) {
logger.info("Loading a Swagger descriptor from URL: ", swaggerDescriptor.getPayload());
swagger = new SwaggerParser().read(swaggerDescriptor.getPayload());
}
}
if (swagger == null) {
throw new SwaggerDescriptorException();
}
NewApiEntity apiEntity = new NewApiEntity();
apiEntity.setName(swagger.getInfo().getTitle());
apiEntity.setDescription(swagger.getInfo().getDescription());
apiEntity.setVersion(swagger.getInfo().getVersion());
String scheme = (swagger.getSchemes() == null || swagger.getSchemes().isEmpty()) ? defaultScheme : swagger.getSchemes().iterator().next().toValue();
apiEntity.setEndpoint(scheme + "://" + swagger.getHost() + swagger.getBasePath());
apiEntity.setPaths(new ArrayList<>(swagger.getPaths().keySet().stream().map(path -> path.replaceAll("\\{(.[^/]*)\\}", ":$1")).collect(Collectors.toList())));
return apiEntity;
}
Aggregations