Spring-Data-Rest projemizde, bir/buergers/search/findBuergerFuzzy? SearchString = "..." uç noktasında özel (bulanık) arama yaptık.Yaylı Veri Kalanı - Arama son noktaya link ekle
Bunun için/buergers/search endpoint dizinine bir link eklenebilir (Otomatik olarak ortaya çıkarılan Repository findBy Yöntemlerini geçersiz kılmaksızın)? i sorunu çözmek gibi görünüyor RepositorySearchesResource bulunan yay veri dinlenme kaynağını Kazı
@BasePathAwareController
@RequestMapping("/buergers/search/")
public class BuergerSearchController {
@Autowired
QueryService service;
@RequestMapping(value = "/findBuergerFuzzy", method = RequestMethod.GET)
public
@ResponseBody
ResponseEntity<?> findBuergerFuzzy(PersistentEntityResourceAssembler assembler, @Param("searchString") String searchString) {
if (searchString.length() < 3)
throw new IllegalArgumentException("Search String must be at least 3 chars long.");
List<Buerger> list = service.query(searchString, Buerger.class, new String[]{"vorname", "nachname", "geburtsdatum", "augenfarbe"});
final List<PersistentEntityResource> collect = list.stream().map(assembler::toResource).collect(Collectors.toList());
return new ResponseEntity<Object>(new Resources<>(collect), HttpStatus.OK);
}
}
Arama işlevinizin yalnızca doğru kaynakta görüntülendiğinden emin olmak için 'resource.getDomainType()' öğesini işaretlemelisiniz. \t 'if (ResourceClass.class.equals (resource.getDomainType()))' –
Çözümünüz çok tehlikelidir, çünkü yönteminizin eşlenmesi (nerede sunulduğu) ile bağlantısının birbiri arasında tutarlılığı (aşağıdaki gibi) kaybediyorsunuz ilişki yol açacaktır). 'Hat' oluştururken bunu önlemek için Spring Hateoas'tan 'linkTo' ve' methodOn' statik yöntemlerini kullanmalısınız. –