, возможно, еще один наткнулся на эту тему и нашел приятное решение. Использование подхода HATEOAS REST с помощью проекта Spring HATEOAS очень хорошо работает для построения ссылок на ресурсы. Но в конце концов, чтобы сопоставить сплющенные ресурсы обратно к дереву объектов сущности, мне нужно разобрать мою ссылку и запросить поддержку. Приведенный пример, у меня есть объект Item, ссылающийся на ItemType (много-к-одному). Естественным ключом элемента является совокупность внешнего ключа ItemType и самого кода элемента. URL-адрес карты в ItemController с помощью компоновщика ссылок:Разберите ссылки на объекты весной Hateoas
@RequestMapping("/catalog/items/{itemTypeCode}_{itemCode}")
Теперь уникальная ссылка на элемент, например. http://www.sample.com/catalog/items/p_abc123
Чтобы инвертировать эту ссылку я сделать некоторые очень некрасиво струнный работы:
@Override
public Item fromLink(Link link) {
Assert.notNull(link);
String baseLink = linkTo(ColorTypeController.class).toString() + "/";
String itemTypeAndItemPart = link.getHref().replace(baseLink, "");
int indexOfSplit = itemTypeAndItemPart.indexOf('_');
ItemType itemType = new ItemType();
itemType.setCode(itemTypeAndItemPart.substring(0, indexOfSplit));
Item item = new Item();
item.setItemType(itemType);
item.setCode(itemTypeAndItemPart.substring(indexOfSplit + 1));
return item;
}
И все время я задаюсь вопросом, если есть не намного лучше и более гибкий подход (остерегайтесь строки запроса часть, которая сломает код), чтобы сделать это обратное отображение. На самом деле я не хочу вызывать другого контроллера MVC из контроллера, но было бы неплохо, чтобы каким-то образом использовать функции демонтажа сервлетов диспетчера для деконструирования URL-адреса в нечто более удобное для работы. Какие-нибудь полезные подсказки для меня? Thx alot :)
Спасибо, Энди, что работает :) –