2012-09-19 17 views
6

मैं जावा (या स्कैला) के लिए एक साधारण आराम क्लाइंट लाइब्रेरी चाहता हूं जो मुझे आसानी से जेएसओएन आरईएसटी एपीआई पर जीईटी/पुट्स/पोस्ट/डिलीट आदि कर दे और जावा ऑब्जेक्ट्स में JSON प्रतिक्रियाओं को एक प्रकार-सुरक्षित तरीके से deserialize करें।क्या JSON वेब एपीआई का उपभोग करने के लिए एक अच्छी तरह से टाइप की गई स्कैला (या जावा) लाइब्रेरी है?

RestClient client = new RestClient("http://api.mycompany.com").withAuth(Auth.Basic, username, password); 
// This basically deserializes the JSON response into a POJO  
MyDocument[] result = client.get("/document?limit=10", MyDocument[].class); 
MyFriend friend = client.post("/friend/Joe", body, MyFriend.class); 

मूल रूप से मैं सामान्य हस्ताक्षर get() उदा के लिए कुछ इस तरह होना चाहते हैं public <T> T get(String path, Class<T> responseClass) जो GET अनुरोध करते हैं और प्रकार का एक POJO में JSON उत्तर responseClass

मैं एक पुस्तकालय है कि सुंदर है कि मैं क्या sitebricks बुलाया चाहते हैं उसके पास है मिला deserialize होगा लेकिन यह गंभीर रूप से जैसे इसके दायरे में सीमित है यह मुझे पुट/पैच/डिलीट जैसी अधिक असामान्य HTTP क्रियाएं करने की अनुमति नहीं देता है और इसमें हेडर या अनुरोध के बॉडी को सेट करने का कोई तरीका नहीं है।

Another library मुझे मिली समस्या है - इसका बेसिकुथ करने का कोई तरीका नहीं है और यह JSONs को आपके लिए ऑब्जेक्ट्स में वापस क्रमबद्ध नहीं करता है।

+0

के लिए संभवतः शीर्षक में "अच्छा" और "सर्वश्रेष्ठ" के उपयोग से बचें। इसके अलावा, स्कैला लक्ष्य है, न कि गिरावट .. –

+0

तो आपका लक्ष्य http अनुरोध करना है? क्या आपने प्रेषण या रीबूट में देखा है? https://github.com/dispatch/dispatch। यदि आपका लक्ष्य http अनुरोधों को संसाधित करना और जवाब देना है, तो unfiltered एक नज़र के लायक हो सकता है। https://github.com/unfiltered/unfiltered – jwinder

+0

डिस्पैच या रीबूट (जो एसिंक http क्लाइंट में लिखे गए प्रेषण का नया संस्करण है) http क्रियाओं को अच्छी तरह से संभाल लेंगे। कोई भी लाइब्रेरी जो विभिन्न http क्रियाओं को संभाले बिना http अनुरोधों को संभालने का दावा करती है उसे http अनुरोधों को संभालने के लिए लाइब्रेरी नहीं माना जाना चाहिए। मुझे लगता है कि यहां तर्क यह है कि http क्रियाएं http अनुरोधों का आधार हैं, इसलिए किसी पुस्तकालय को उनका समर्थन करना चाहिए। – jwinder

उत्तर

1

क्या आपने this चेक किया था? SJSON के बजाय आप Salat का उपयोग