Я разработал REST API с использованием Spring Framework, я реализовал Spring HATEOS, но в ответ ниже я хочу опустить «шаблон», заключенный в черный прямоугольник на изображении ниже
Теперь я создал класс Ассемблера, реализовав ResourceAssembler<>
, и записал весь код, связанный со ссылками, путем реализации его метода toResource()
и вызвал его в моем контроллере Ассемблер
package com.javarnd.bbms.assembler;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
import org.springframework.hateoas.Resource;
import org.springframework.hateoas.ResourceAssembler;
import org.springframework.stereotype.Component;
import com.javarnd.bbms.model.DonorDetail;
import com.javarnd.bbms.webapi.DonorDetailRestControllerV3;
@Component
public class DonorDetailAssembler implements ResourceAssembler<DonorDetail,Resource<DonorDetail>> {
@Override
public Resource<DonorDetail> toResource(DonorDetail donorDetail) {
return new Resource<>(donorDetail,
linkTo(methodOn(DonorDetailRestControllerV3.class).one(donorDetail.getDonorId())).withSelfRel(),
linkTo(methodOn(DonorDetailRestControllerV3.class).all()).withRel("donors"));
}
}
Фрагмент контроллера
@GetMapping(value=ONE, produces=MediaType.APPLICATION_JSON_VALUE)
public Resource<DonorDetail> one(@PathVariable Long id) {
DonorDetail donorDetail=null;
try {
donorDetail = donorDetailService.findById(id);
return donorAssembler.toResource(donorDetail);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Я не встречал ни одного поста документов, где я мог бы настроить ответ в соответствии с моим требованием, любая помощь будетбыть оцененным.