org.springframework.hateoas.server.mvc.WebMvcLinkBuilder Java Examples
The following examples show how to use
org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ReleaseController.java From spring-cloud-skipper with Apache License 2.0 | 6 votes |
@RequestMapping(method = RequestMethod.GET) public ReleaseControllerLinksResource resourceLinks() { ReleaseControllerLinksResource resource = new ReleaseControllerLinksResource(); resource.add(WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).status(null)) .withRel("status/name")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).status(null, null)) .withRel("status/name/version")); resource.add( WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).manifest(null)) .withRel("manifest")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).manifest(null, null)) .withRel("manifest/name/version")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).upgrade(null)) .withRel("upgrade")); resource.add( WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).rollbackWithNamedVersion(null, 123)) .withRel("rollback")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).list()) .withRel("list")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(ReleaseController.class).list(null)) .withRel("list/name")); return resource; }
Example #2
Source File: JobSearchResultModelAssembler.java From genie with Apache License 2.0 | 6 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<JobSearchResult> toModel(final JobSearchResult job) { final EntityModel<JobSearchResult> jobSearchResultModel = new EntityModel<>(job); try { jobSearchResultModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJob(job.getId()) ).withSelfRel() ); } catch (final GenieException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return jobSearchResultModel; }
Example #3
Source File: CommandModelAssembler.java From genie with Apache License 2.0 | 5 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<Command> toModel(final Command command) { final String id = command.getId().orElseThrow(IllegalArgumentException::new); final EntityModel<Command> commandModel = new EntityModel<>(command); try { commandModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(CommandRestController.class) .getCommand(id) ).withSelfRel() ); commandModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(CommandRestController.class) .getApplicationsForCommand(id) ).withRel(APPLICATIONS_LINK) ); commandModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(CommandRestController.class) .getClustersForCommand(id, null) ).withRel(CLUSTERS_LINK) ); } catch (final GenieException | GenieCheckedException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return commandModel; }
Example #4
Source File: JobDetailController.java From spring-batch-rest with Apache License 2.0 | 5 votes |
@Operation(summary = "Get all Quartz job details") @GetMapping public CollectionModel<JobDetailResource> all(@RequestParam(value = "enabled", required = false) Boolean enabled, @RequestParam(value = "springBatchJobName", required = false) String springBatchJobName) { return new CollectionModel<>(jobDetailService.all(Optional.ofNullable(enabled), Optional.ofNullable(springBatchJobName)).stream() .map(JobDetailResource::new).collect(toList()), WebMvcLinkBuilder.linkTo(methodOn(JobDetailController.class).all(enabled, springBatchJobName)).withSelfRel().expand()); }
Example #5
Source File: ApplicationModelAssembler.java From genie with Apache License 2.0 | 5 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<Application> toModel(final Application application) { final String id = application.getId().orElseThrow(IllegalArgumentException::new); final EntityModel<Application> applicationModel = new EntityModel<>(application); try { applicationModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(ApplicationRestController.class) .getApplication(id) ).withSelfRel() ); applicationModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(ApplicationRestController.class) .getCommandsForApplication(id, null) ).withRel(COMMANDS_LINK) ); } catch (final GenieException | NotFoundException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return applicationModel; }
Example #6
Source File: ClusterModelAssembler.java From genie with Apache License 2.0 | 5 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<Cluster> toModel(final Cluster cluster) { final String id = cluster.getId().orElseThrow(IllegalArgumentException::new); final EntityModel<Cluster> clusterModel = new EntityModel<>(cluster); try { clusterModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(ClusterRestController.class) .getCluster(id) ).withSelfRel() ); clusterModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(ClusterRestController.class) .getCommandsForCluster(id, null) ).withRel(COMMANDS_LINK) ); } catch (final NotFoundException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return clusterModel; }
Example #7
Source File: PostController.java From POC with Apache License 2.0 | 5 votes |
@GetMapping("/{user_name}/posts/{title}") public ResponseEntity<PostDTO> getPostByUserNameAndTitle(@PathVariable("user_name") String userName, @PathVariable("title") String title) { PostDTO postDTO = this.addLinkToPostBiFunction.apply(userName, this.postService.fetchPostByUserNameAndTitle(userName, title)); Link getAllPostsLink = WebMvcLinkBuilder .linkTo(WebMvcLinkBuilder.methodOn(this.getClass()).getPostsByUserName(userName)) .withRel("get-all-posts-by-username"); postDTO.add(getAllPostsLink); return ResponseEntity.of(Optional.of(postDTO)); }
Example #8
Source File: SecurityController.java From spring-cloud-dataflow with Apache License 2.0 | 5 votes |
/** * Return security information. E.g. is security enabled? Which user do you represent? * * @return the security info */ @ResponseBody @RequestMapping(method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) public SecurityInfoResource getSecurityInfo() { final boolean authenticationEnabled = securityStateBean.isAuthenticationEnabled(); final SecurityInfoResource securityInfo = new SecurityInfoResource(); securityInfo.setAuthenticationEnabled(authenticationEnabled); securityInfo.add(WebMvcLinkBuilder.linkTo(SecurityController.class).withSelfRel()); if (authenticationEnabled && SecurityContextHolder.getContext() != null) { final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (!(authentication instanceof AnonymousAuthenticationToken)) { securityInfo.setAuthenticated(authentication.isAuthenticated()); securityInfo.setUsername(authentication.getName()); for (Object authority : authentication.getAuthorities()) { final GrantedAuthority grantedAuthority = (GrantedAuthority) authority; securityInfo.addRole(grantedAuthority.getAuthority()); } } } return securityInfo; }
Example #9
Source File: SimpleIdentifiableRepresentationModelAssembler.java From spring-hateoas-examples with Apache License 2.0 | 5 votes |
/** * Build up a URI for the collection using the Spring web controller followed by the resource type transformed by the * {@link LinkRelationProvider}. Assumption is that an {@literal EmployeeController} serving up {@literal Employee} * objects will be serving resources at {@code /employees} and {@code /employees/1}. If this is not the case, simply * override this method in your concrete instance, or resort to overriding {@link #addLinks(EntityModel)} and * {@link #addLinks(CollectionModel)} where you have full control over exactly what links are put in the individual * and collection resources. * * @return */ protected LinkBuilder getCollectionLinkBuilder() { WebMvcLinkBuilder linkBuilder = linkTo(this.controllerClass); for (String pathComponent : (getPrefix() + this.relProvider.getCollectionResourceRelFor(this.resourceType)) .split("/")) { if (!pathComponent.isEmpty()) { linkBuilder = linkBuilder.slash(pathComponent); } } return linkBuilder; }
Example #10
Source File: UserResource.java From spring-web-services with MIT License | 5 votes |
@GetMapping("/users/{id}") public EntityModel<User> retrieveUser(@PathVariable int id) { User user = service.findOne(id); if(user==null) throw new UserNotFoundException("id-"+ id); //"all-users", SERVER_PATH + "/users" //retrieveAllUsers EntityModel<User> resource = EntityModel.of(user); WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers()); resource.add(linkTo.withRel("all-users")); //HATEOAS return resource; }
Example #11
Source File: ClassificationRepresentationModelAssembler.java From taskana with Apache License 2.0 | 5 votes |
@NonNull @Override public ClassificationRepresentationModel toModel(@NonNull Classification classification) { ClassificationRepresentationModel repModel = new ClassificationRepresentationModel(); repModel.setClassificationId(classification.getId()); repModel.setApplicationEntryPoint(classification.getApplicationEntryPoint()); repModel.setCategory(classification.getCategory()); repModel.setDomain(classification.getDomain()); repModel.setKey(classification.getKey()); repModel.setName(classification.getName()); repModel.setParentId(classification.getParentId()); repModel.setParentKey(classification.getParentKey()); repModel.setPriority(classification.getPriority()); repModel.setServiceLevel(classification.getServiceLevel()); repModel.setType(classification.getType()); repModel.setCustom1(classification.getCustom1()); repModel.setCustom2(classification.getCustom2()); repModel.setCustom3(classification.getCustom3()); repModel.setCustom4(classification.getCustom4()); repModel.setCustom5(classification.getCustom5()); repModel.setCustom6(classification.getCustom6()); repModel.setCustom7(classification.getCustom7()); repModel.setCustom8(classification.getCustom8()); repModel.setIsValidInDomain(classification.getIsValidInDomain()); repModel.setCreated(classification.getCreated()); repModel.setModified(classification.getModified()); repModel.setDescription(classification.getDescription()); try { repModel.add( WebMvcLinkBuilder.linkTo( methodOn(ClassificationController.class) .getClassification(classification.getId())) .withSelfRel()); } catch (ClassificationNotFoundException e) { throw new SystemException("caught unexpected Exception.", e.getCause()); } return repModel; }
Example #12
Source File: SkipperLinksResourceProcessor.java From spring-cloud-skipper with Apache License 2.0 | 5 votes |
@Override public RepositoryLinksResource process(RepositoryLinksResource resource) { resource.add(WebMvcLinkBuilder.linkTo(methodOn(AboutController.class).getAboutResource()).withRel("about")); resource.add(WebMvcLinkBuilder.linkTo(ReleaseController.class).withRel("release")); resource.add(WebMvcLinkBuilder.linkTo(PackageController.class).withRel("package")); return resource; }
Example #13
Source File: PackageController.java From spring-cloud-skipper with Apache License 2.0 | 5 votes |
@RequestMapping(method = RequestMethod.GET) public PackageControllerLinksResource resourceLinks() { PackageControllerLinksResource resource = new PackageControllerLinksResource(); resource.add( WebMvcLinkBuilder.linkTo(methodOn(PackageController.class).upload(null)) .withRel("upload")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(PackageController.class).install(null)) .withRel("install")); resource.add(WebMvcLinkBuilder.linkTo(methodOn(PackageController.class).install(null, null)) .withRel("install/id")); return resource; }
Example #14
Source File: UserResource.java From spring-microservices with MIT License | 4 votes |
@GetMapping("/users/{id}") public EntityModel<User> retrieveUser(@PathVariable int id) { User user = service.findOne(id); if(user==null) throw new UserNotFoundException("id-"+ id); //"all-users", SERVER_PATH + "/users" //retrieveAllUsers EntityModel<User> resource = EntityModel.of(user); WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers()); resource.add(linkTo.withRel("all-users")); //HATEOAS return resource; }
Example #15
Source File: UserJPAResource.java From spring-web-services with MIT License | 4 votes |
@GetMapping("/jpa/users/{id}") public EntityModel<User> retrieveUser(@PathVariable int id) { Optional<User> user = userRepository.findById(id); if (!user.isPresent()) throw new UserNotFoundException("id-" + id); // "all-users", SERVER_PATH + "/users" // retrieveAllUsers EntityModel<User> resource = EntityModel.of(user.get());//new EntityModel<User>(user.get()); WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers()); resource.add(linkTo.withRel("all-users")); // HATEOAS return resource; }
Example #16
Source File: JobExecutionModelAssembler.java From genie with Apache License 2.0 | 4 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<JobExecution> toModel(final JobExecution jobExecution) { final String id = jobExecution.getId().orElseThrow(IllegalArgumentException::new); final EntityModel<JobExecution> jobExecutionModel = new EntityModel<>(jobExecution); try { jobExecutionModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobExecution(id) ).withSelfRel() ); jobExecutionModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJob(id) ).withRel(JOB_LINK) ); jobExecutionModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobRequest(id) ).withRel(REQUEST_LINK) ); // TODO: https://github.com/spring-projects/spring-hateoas/issues/186 should be fixed in .20 currently .19 // jobExecutionResource.add( // ControllerLinkBuilder.linkTo( // JobRestController.class, // JobRestController.class.getMethod( // "getJobOutput", // String.class, // String.class, // HttpServletRequest.class, // HttpServletResponse.class // ), // id, // null, // null, // null // ).withRel("output") // ); jobExecutionModel.add( WebMvcLinkBuilder .linkTo(JobRestController.class) .slash(id) .slash(OUTPUT_LINK) .withRel(OUTPUT_LINK) ); jobExecutionModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobStatus(id) ).withRel(STATUS_LINK) ); jobExecutionModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobMetadata(id) ).withRel(METADATA_LINK) ); } catch (final GenieException | GenieCheckedException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return jobExecutionModel; }
Example #17
Source File: JobMetadataModelAssembler.java From genie with Apache License 2.0 | 4 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<JobMetadata> toModel(final JobMetadata jobMetadata) { final String id = jobMetadata.getId().orElseThrow(IllegalArgumentException::new); final EntityModel<JobMetadata> jobMetadataModel = new EntityModel<>(jobMetadata); try { jobMetadataModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobMetadata(id) ).withSelfRel() ); jobMetadataModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJob(id) ).withRel(JOB_LINK) ); jobMetadataModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobRequest(id) ).withRel(REQUEST_LINK) ); jobMetadataModel.add( WebMvcLinkBuilder .linkTo(JobRestController.class) .slash(id) .slash(OUTPUT_LINK) .withRel(OUTPUT_LINK) ); jobMetadataModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobStatus(id) ).withRel(STATUS_LINK) ); jobMetadataModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobExecution(id) ).withRel(EXECUTION_LINK) ); } catch (final GenieException | GenieCheckedException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return jobMetadataModel; }
Example #18
Source File: JobRequestModelAssembler.java From genie with Apache License 2.0 | 4 votes |
/** * {@inheritDoc} */ @Override @Nonnull public EntityModel<JobRequest> toModel(final JobRequest jobRequest) { final String id = jobRequest.getId().orElseThrow(IllegalArgumentException::new); final EntityModel<JobRequest> jobRequestModel = new EntityModel<>(jobRequest); try { jobRequestModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobRequest(id) ).withSelfRel() ); jobRequestModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJob(id) ).withRel(JOB_LINK) ); jobRequestModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobExecution(id) ).withRel(EXECUTION_LINK) ); // TODO: https://github.com/spring-projects/spring-hateoas/issues/186 should be fixed in .20 currently .19 // jobRequestResource.add( // ControllerLinkBuilder.linkTo( // JobRestController.class, // JobRestController.class.getMethod( // "getJobOutput", // String.class, // String.class, // HttpServletRequest.class, // HttpServletResponse.class // ), // id, // null, // null, // null // ).withRel("output") // ); jobRequestModel.add( WebMvcLinkBuilder .linkTo(JobRestController.class) .slash(id) .slash(OUTPUT_LINK) .withRel(OUTPUT_LINK) ); jobRequestModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobStatus(id) ).withRel(STATUS_LINK) ); jobRequestModel.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .getJobMetadata(id) ).withRel(METADATA_LINK) ); } catch (final GenieException | GenieCheckedException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return jobRequestModel; }
Example #19
Source File: RootModelAssembler.java From genie with Apache License 2.0 | 4 votes |
/** * {@inheritDoc} */ @Override @SuppressFBWarnings("NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS") @Nonnull public EntityModel<JsonNode> toModel(final JsonNode metadata) { final EntityModel<JsonNode> rootResource = new EntityModel<>(metadata); try { rootResource.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(RootRestController.class) .getRoot() ).withSelfRel() ); rootResource.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(ApplicationRestController.class) .createApplication(null) ).withRel(APPLICATIONS_LINK) ); rootResource.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(CommandRestController.class) .createCommand(null) ).withRel(COMMANDS_LINK) ); rootResource.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(ClusterRestController.class) .createCluster(null) ).withRel(CLUSTERS_LINK) ); rootResource.add( WebMvcLinkBuilder.linkTo( WebMvcLinkBuilder .methodOn(JobRestController.class) .submitJob(null, null, null, null) ).withRel(JOBS_LINK) ); } catch (final GenieException | GenieCheckedException ge) { // If we can't convert it we might as well force a server exception throw new RuntimeException(ge); } return rootResource; }
Example #20
Source File: UserJPAResource.java From spring-microservices with MIT License | 3 votes |
@GetMapping("/jpa/users/{id}") public EntityModel<User> retrieveUser(@PathVariable int id) { Optional<User> user = userRepository.findById(id); if (!user.isPresent()) throw new UserNotFoundException("id-" + id); // "all-users", SERVER_PATH + "/users" // retrieveAllUsers EntityModel<User> resource = EntityModel.of(user.get());//new EntityModel<User>(user.get()); WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers()); resource.add(linkTo.withRel("all-users")); // HATEOAS return resource; }