के साथ स्प्रिंग हैटियोस Restservice उपभोग करने के लिए मेरे पास दो अनुप्रयोग हैं, एक को बार कहा जाता है, जो मुझे एचएएल प्रारूप में संसाधन प्रदान करता है। दूसरा उस सेवा का उपभोग करने के लिए बीसीएम है।RestTemplate
प्रतिक्रिया बार का उदाहरण इस प्रकार है:
[
{
"name":"Brenner/in",
"_links":{
"self":{
"href":"..host/bbsng-app-rest/betrieb/15"
}
}
},
{
"name":"Dienstleistungshelfer/in HW",
"_links":{
"self":{
"href":"..host/bbsng-app-rest/betrieb/4"
}
}
},
{
...
अब मैं उपभोग करने के लिए कि बीसीएम स्प्रिंग RestTemplate का उपयोग करने से प्रयास करें। मेरा समाधान काम करता है, लेकिन मैं किसी भी तरह से उस समाधान से खुश नहीं हूं और मुझे लगता है कि एक और साफ तरीका है।
मेरा ग्राहक-संहिता लेने वाली RestService लगता है:
@Autowired private RestTemplate template;
@Override
@SuppressWarnings("unchecked")
public BerufListe findeAlleBerufe() {
final BerufListe berufListe = new BerufListe();
final ResponseEntity<List> entity = template.getForEntity(LinkUtils.findBeruf(), List.class);
if (OK.equals(entity.getStatusCode())) {
final List<LinkedHashMap> body = entity.getBody();
for (final LinkedHashMap map : body) {
final LinkedHashMap idMap = (LinkedHashMap) map.get("_links");
String id = remove(String.valueOf(idMap.get("self")), "href=");
id = remove(id, "{");
id = remove(id, "}");
final String name = String.valueOf(map.get("name"));
final Beruf beruf = new Beruf(id, name);
berufListe.add(beruf);
}
}
return berufListe;
}
जैसा कि आप देख रहे कुछ बदसूरत कोड हैं। उनमें से एक यह है कि मेरे पास मेरे संग्रह के लिए कोई जेनरिक नहीं है। दूसरी बात, मुझे Resource_ID बहुत जटिल मिलता है, और मैं स्वयं url निकालने के लिए कई बार StringUtils.remove का उपयोग करता हूं।
मुझे यकीन है कि वसंत द्वारा एचएएल-प्रतिक्रिया का उपभोग करने के लिए एक और सुविधाजनक तरीका होना चाहिए।
धन्यवाद।
किसी भी अद्यतन: एक ठेठ बाद अनुरोध ऐसा दिखाई दे सकता? दुर्भाग्यवश – Snekse
नहीं। लेकिन तब से मैंने बहुत अधिक शोध नहीं किया है। –
सबक्लासिंग से बचने के लिए आप 'नया पैरामीटरेट टाइप टाइपरेंस <संसाधन>() {} 'का उपयोग कर सकते हैं। –
afaulconbridge