पर लिंक जोड़ें हमारे स्प्रिंग-डेटा-रेस्ट प्रोजेक्ट में हमारे पास एक/बर्गर/सर्च/ढूंढने वाला बर्गरफज़ी पर एक कस्टम (अस्पष्ट) खोज है? SearchString = "..." endpoint।स्प्रिंग डेटा रेस्ट - खोज एंडपॉइंट
क्या यह/बर्गर/खोज एंडपॉइंट पर स्वचालित रूप से उजागर किए गए रिपोजिटरी ढूंढने के तरीकों के बिना एक लिंक जोड़ना संभव है?
नियंत्रक खोज उजागर:
@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);
}
}
आपको यह सुनिश्चित करने के लिए 'resource.getDomainType()' जांचना चाहिए कि आपका खोज फ़ंक्शन केवल सही संसाधन पर प्रदर्शित होता है। \t 'if (ResourceClass.class.equals (resource.getDomainType())) –
आपका समाधान काफी खतरनाक है, क्योंकि आप अपनी विधि के मैपिंग (जहां यह परोसा जाता है) के बीच स्थिरता खो रहे हैं और इसके लिंक (जहां निम्नलिखित है) संबंध नेतृत्व करेंगे)। आपको 'लिंक' बनाने और स्प्रिंग हेटोआस से 'methodOn' स्थिर विधियों का उपयोग करना चाहिए ताकि आप' लिंक 'बनाते समय –