Обратное разрешение URL-адресов для сопоставления данных весенней загрузки

#java #django #spring #spring-boot #url

Вопрос:

В настоящее время я пишу API REST для загрузки Spring и хотел выполнить обратное разрешение URL-адреса, определенного в a GetMapping . В веб-фреймворке Django есть метод для этого: обратный. Но я не смог найти ничего подобного для Spring Boot.

Я ищу что-то вроде этого:

 package help.me.stack.overflow;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("api")
public class SomeController {

    @GetMapping(value = "/items/{filter}/blob")
    public ResponseEntity<?> getItems(@PathVariable String filter, @RequestParam String sorting) {
        return ResponseEntity.ok().body("here you go");
    }

    @GetMapping(value = "/give-me-url")
    public ResponseEntity<?> getTheUrl() {
        return resolveUrl(SomeController.getItems, "foo-filter", "foo-sorting");
        // should produce "api/items/foo-filter/blob?sorting=foo-sorting"
    }
}
 

Существует ли что-то подобное? Как я могу его использовать?

Ответ №1:

Да, вы можете использовать WebMvcLinkBuilder.linkTo(...) из весеннего HATEOAS:

 linkTo(methodOn(SomeController.class).getItems("foo-filter", "foo-sorting")).withSelfRel()
 

Дополнительные примеры см. Здесь