2016-11-29 10 views
5

मैं ग्राफक्लुएल के लिए नया हूं लेकिन मैं थोड़ी देर के लिए रेट्रोफिट का उपयोग कर रहा हूं और इसका उपयोग करना आसान और तेज़ है। ग्राफ़क्यूएल डेटा पास करने के तरीके के संदर्भ में आराम एपीआई से काफी अलग है। एंड्रॉइड के साथ ग्राफक्लुएल का उपयोग करने पर वास्तव में बहुत सारे ट्यूटोरियल नहीं हैं, मैं केवल इस वीडियो को ढूंढने में सक्षम था (https://www.youtube.com/watch?v=P0uJHI7GjIc&t=1s) लेकिन वहां कोई वास्तविक कोड नहीं है।एंड्रॉइड पर रेट्रोफिट के साथ ग्राफQL का उपयोग कैसे करें?

final RestAdapter restAdapter = new RestAdapter.Builder() 
       .setEndpoint(endPoint) 
       .build(); 
     T service = restAdapter.create(clazz); 

तो मैं इस तरह एक आराम सेवा को कॉल:

@GET("https://stackoverflow.com/users/{login}") 
    Observable<Github> getUser(@Path("login") String login); 
GraphQL साथ

अब आप केवल एक है

पुराना वापस कॉल के लिए अपने मौजूदा कोड में मैं एक अंतबिंदु मैं बहुत की तरह सेट किया है आधार यूआरएल और कोई सेवा पथ नहीं है। आप userId तरह जानना चाहते हैं इसके अलावा, अगर = 1 तो आप शारीरिक मापदंडों के साथ पोस्ट के रूप में भेजने के लिए:

operationName: arbitrary name , 
query: "{users(userid:$userId){username}}, 
variables: "{"userId":1}" 

मैं बस यकीन नहीं है कि यह कैसे

+1

आप युक्त एक JSON शरीर बनाने के लिए की आवश्यकता होगी अपने ' क्वेरी', 'ऑपरेशननाम', और 'वेरिएबल्स', फिर पोस्ट करने के लिए रेट्रोफिट की व्यवस्था करें जो जेएसओएन सर्वर पर अपने नामित ग्राफक्लुएल यूआरएल में है। मैं इस बात से असहज हूं कि ग्राफक्लु के लिए ओकेएचटीपी और जीसन का उपयोग करने पर रेट्रोफिट का अधिक लाभ होगा। – CommonsWare

+0

ठीक है, मैं यहां देखता हूं कि रेट्रोफिट के लिए JSON बॉडी कैसे बनाएं: http://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in-the-body-of-a-retrofit- निवेदन। लेकिन पोस्ट पथ क्या होना चाहिए? i.e: मेरे पास केवल मेरे ग्राफ़क्ल सर्वर के लिए बेस यूआरएल है। – Mike6679

+1

"लेकिन पोस्ट पथ क्या होना चाहिए" - एक ग्राफक्यूएल सर्वर में आमतौर पर एक एंडपॉइंट होता है। तो, आपके पास पहले से मौजूद मूल URL का उपयोग करें, खासकर यदि यह '/ graphql' में समाप्त होता है। – CommonsWare

उत्तर

3

बिल्डिंग प्रश्नों & पार्सिंग प्रतिक्रियाओं पुराना वापस करने के लिए GraphQL है के लिए तब्दील कर रहा हूँ सीधा नहीं। यदि आप पालतू परियोजनाओं पर इसका उपयोग कर रहे हैं, तो मैं अपोलो की खोज शुरू करने की सलाह देता हूं। यह ग्राहक गंभीर विकास में है लेकिन आप इसके साथ पहले से ही एक नज़र देख सकते हैं और खेल सकते हैं।

https://github.com/apollographql/apollo-android

मैं अब तक अपोलो के साथ काम करने का आनंद लिया, और वहां उनकी योजना पर अच्छा विशेषताएं हैं: RxJava एकता, रेट्रोफिट, AutoValue के लिए सदस्यता और समर्थन

संबंधित मुद्दे