Resource и ControllerLinkBuilder не найдены и устарели - PullRequest
0 голосов
/ 20 апреля 2019

Я использую Spring Boot 2.2.0.M1 с HATEOAS и Gradle.

implementation 'org.springframework.boot:spring-boot-starter-hateoas'

В данный момент IDE не найдена Resource (IntelliJ IDEA 2018.3), а ControllerLinkBuilder помеченокак устарело .

package com.example.restfulwebservicegradle.user;

import static org.springframework.hateoas.server.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;

import com.example.restfulwebservicegradle.User;
import com.example.restfulwebservicegradle.UserDaoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.hateoas.server.mvc.ControllerLinkBuilder;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;

import javax.validation.Valid;
import java.net.URI;
import java.util.List;

@RestController
public class UserResource {

    @Autowired
    private UserDaoService service;

    @GetMapping("users/{id}")
    public Resource<User> retrieveUser(@PathVariable int id) {
        User user = service.findOne(id);

        if (user == null)
            throw new UserNotFoundException("id-" + id);


        // Resource not found
        Resource<User> resource = new Resource<User>(user);

        // Deprecated
        ControllerLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers());

        resource.add(linkTo.withRel("all-users"));

        return resource;
    }
}

Доступен импорт в соответствии с IDE: enter image description here

Как можноЯ решил это?

Моя цель - найти Resource из HATEOAS и использовать замену ControllerLinkBuilder.

1 Ответ

0 голосов
/ 08 мая 2019

Самым фундаментальным изменением является тот факт, что Spring HATEOAS не создает ресурсы. Вот что делает Spring MVC / Spring WebFlux. Мы создаем нейтральные вендоры представления гипермедиа. Итак, мы переименовали эти основные типы:

ССЫЛКА- https://spring.io/blog/2019/03/05/spring-hateoas-1-0-m1-released#overhaul

  1. ResourceSupport теперь представляет PresentationModel
  2. Ресурс теперь EntityModel
  3. Ресурсы теперь CollectionModel
  4. PagedResources теперь является PagedModel
...