2016-05-03 7 views
5

रेट्रोफिट का उपयोग करते समय, मुझे पता है कि आप वैकल्पिक प्रश्न निर्दिष्ट करने के लिए @FieldMap Map<String, String> options का उपयोग कर सकते हैं।रेट्रोफिट वैकल्पिक और आवश्यक फ़ील्ड

कहें कि मेरे पास एक एपीआई कॉल है जिसमें 2 आवश्यक फ़ील्ड और 3 वैकल्पिक फ़ील्ड हैं।

मैं इन कॉल को कैसे प्रारूपित करूं?

ऐसा

Call<Response> getStuff(@Query("user_id") String userId, @Query("password") String password, @FieldMap Map<String, String> options) 

कुछ होगा या पूरी बात की तरह एक भी @FieldMap होगा:

Call<Response> getStuff(@FieldMap Map<String, String> options)

और इस विकल्प तुम सिर्फ आवश्यक फ़ील्ड की पूर्ति होती है और साथ फिर विकल्प के लिए null का उपयोग करें?

+0

Pls पढ़ें http://stackoverflow.com/questions/36634926/how-to-handle-null-param-values-in-retrofit/36640325#36640325 – BNK

उत्तर

9

@FieldMap और @Query पैरा दोनों वैकल्पिक वैकल्पिक क्षेत्रों का समर्थन करते हैं। जैसा कि आपने उल्लेख किया है, यदि आप कोई मान पास नहीं करना चाहते हैं तो बस null पास करें।

+0

तो पुष्टि करने के लिए, यह सबसे अच्छा होगा कॉल एक सिंगल '@ फ़ील्ड मैप मैप <स्ट्रिंग, स्ट्रिंग> 'शून्य मूल्यों के साथ जहां आवश्यक हो? – Orbit

+2

मैं आम तौर पर स्पष्ट '@ क्वेरी' फ़ील्ड का उपयोग करने की अनुशंसा करता हूं क्योंकि इन्हें स्वयं-दस्तावेज़ एंडपॉइंट्स में उपयोग किया जा सकता है, लेकिन '@ फील्डमैप' को भी नौकरी करना चाहिए। – Ryan

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