use of io.swagger.v3.oas.models.parameters.RequestBody in project cas by apereo.
the class RegisteredServicesEndpoint method importSingleService.
private ResponseEntity<RegisteredService> importSingleService(final HttpServletRequest request) throws IOException {
val requestBody = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
LOGGER.trace("Submitted registered service:\n[{}]", requestBody);
if (StringUtils.isBlank(requestBody)) {
LOGGER.warn("Could not extract registered services from request body");
return ResponseEntity.badRequest().build();
}
return registeredServiceSerializers.stream().map(serializer -> serializer.from(requestBody)).filter(Objects::nonNull).findFirst().map(service -> {
LOGGER.trace("Storing registered service:\n[{}]", service);
return servicesManager.save(service);
}).map(service -> {
val headers = new HttpHeaders();
headers.put("id", CollectionUtils.wrapList(String.valueOf(service.getId())));
return new ResponseEntity<>(service, headers, HttpStatus.CREATED);
}).orElseGet(() -> new ResponseEntity<>(HttpStatus.BAD_REQUEST));
}
use of io.swagger.v3.oas.models.parameters.RequestBody in project cas by apereo.
the class YubiKeyAccountRegistryEndpoint method importAccount.
/**
* Import account.
*
* @param request the request
* @return the http status
* @throws Exception the exception
*/
@Operation(summary = "Import a Yubikey account as a JSON document")
@PostMapping(path = "/import", consumes = MediaType.APPLICATION_JSON_VALUE)
public HttpStatus importAccount(final HttpServletRequest request) throws Exception {
val requestBody = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
LOGGER.trace("Submitted account: [{}]", requestBody);
val account = MAPPER.readValue(requestBody, new TypeReference<YubiKeyAccount>() {
});
LOGGER.trace("Storing account: [{}]", account);
registry.getObject().save(account);
return HttpStatus.CREATED;
}
use of io.swagger.v3.oas.models.parameters.RequestBody in project cas by apereo.
the class WebAuthnRegisteredDevicesEndpoint method importAccount.
/**
* Import account.
*
* @param request the request
* @return the http status
* @throws Exception the exception
*/
@Operation(summary = "Import a device registration as a JSON document")
@PostMapping(path = "/import", consumes = MediaType.APPLICATION_JSON_VALUE)
public HttpStatus importAccount(final HttpServletRequest request) throws Exception {
val requestBody = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
LOGGER.trace("Submitted account: [{}]", requestBody);
val account = WebAuthnUtils.getObjectMapper().readValue(requestBody, new TypeReference<CredentialRegistration>() {
});
LOGGER.trace("Storing account: [{}]", account);
registrationStorage.getObject().addRegistrationByUsername(account.getUsername(), account);
return HttpStatus.CREATED;
}
use of io.swagger.v3.oas.models.parameters.RequestBody in project swagger-core by swagger-api.
the class ParameterDeSerializationTest method deserializeArrayBodyParameter.
@Test(description = "it should deserialize an array BodyParameter")
public void deserializeArrayBodyParameter() throws IOException {
final String json = "{\"content\":{\"*/*\":{\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/Cat\"}}}}}";
final RequestBody p = m.readValue(json, RequestBody.class);
SerializationMatchers.assertEqualsToJson(p, json);
}
use of io.swagger.v3.oas.models.parameters.RequestBody in project swagger-core by swagger-api.
the class SwaggerSerializerTest method convertSpec.
@Test(description = "it should convert a spec")
public void convertSpec() throws IOException {
final Schema personModel = ModelConverters.getInstance().read(Person.class).get("Person");
final Schema errorModel = ModelConverters.getInstance().read(Error.class).get("Error");
final Info info = new Info().version("1.0.0").title("Swagger Petstore");
final Contact contact = new Contact().name("Swagger API Team").email("foo@bar.baz").url("http://swagger.io");
info.setContact(contact);
final Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "value");
info.addExtension("x-test2", map);
info.addExtension("x-test", "value");
final OpenAPI swagger = new OpenAPI().info(info).addServersItem(new Server().url("http://petstore.swagger.io")).schema("Person", personModel).schema("Error", errorModel);
final Operation get = new Operation().summary("finds pets in the system").description("a longer description").addTagsItem("Pet Operations").operationId("get pet by id").deprecated(true);
get.addParametersItem(new Parameter().in("query").name("tags").description("tags to filter by").required(false).schema(new StringSchema()));
get.addParametersItem(new Parameter().in("path").name("petId").description("pet to fetch").schema(new IntegerSchema().format("int64")));
final ApiResponse response = new ApiResponse().description("pets returned").content(new Content().addMediaType("application/json", new MediaType().schema(new Schema().$ref("Person")).example("fun")));
final ApiResponse errorResponse = new ApiResponse().description("error response").addLink("myLink", new Link().description("a link").operationId("theLinkedOperationId").addParameter("userId", "gah")).content(new Content().addMediaType("application/json", new MediaType().schema(new Schema().$ref("Error"))));
get.responses(new ApiResponses().addApiResponse("200", response).addApiResponse("default", errorResponse));
final Operation post = new Operation().summary("adds a new pet").description("you can add a new pet this way").addTagsItem("Pet Operations").operationId("add pet").responses(new ApiResponses().addApiResponse("default", errorResponse)).requestBody(new RequestBody().description("the pet to add").content(new Content().addMediaType("*/*", new MediaType().schema(new Schema().$ref("Person")))));
swagger.paths(new Paths().addPathItem("/pets", new PathItem().get(get).post(post)));
final String swaggerJson = Json.mapper().writeValueAsString(swagger);
Json.prettyPrint(swagger);
final OpenAPI rebuilt = Json.mapper().readValue(swaggerJson, OpenAPI.class);
SerializationMatchers.assertEqualsToJson(rebuilt, swaggerJson);
}
Aggregations