मैं एक नई iOS ऐप परियोजना पर काम कर रहा हूं, मोबाइल पक्ष पर। कुछ आर्किटेक्चर परिवर्तन हो रहे हैं और यह पता चलता है कि हमें एक कस्टम निर्मित निजी एपीआई पर भरोसा करना होगा जिसका उपयोग हम उस ऐप के द्वारा किया जाएगा और अन्य क्लाइंट जैसे कि वेबसाइट।
डिज़ाइन किया जा रहा एपीआई संसाधनों की केंद्रित शैली URI और CRUD संचालन के लिए HTTP क्रियाओं के लिए मैप की गई है। इस तरह की चीजें:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
समस्या यह है कि यह शैली अक्सर मोबाइल क्लाइंट के लिए एकल एप्लिकेशन स्क्रीन लोड करने या एकल उपयोगकर्ता UI कार्रवाई प्रबंधित करने के लिए कई अनुरोध करने की आवश्यकता होती है। यह एप्लिकेशन को 8 सेकंड के लिए लोडिंग मोड में रखता है, जब तक कि उसके पास सब कुछ आवश्यक न हो। एक धीमी और अनुत्तरदायी अनुप्रयोग।
जब कनेक्टिविटी की बात आती है तो मोबाइल क्लाइंट की गंभीर सीमाएँ होती हैं और आदर्श रूप में, हमें उस तरह के नियम का पालन करना चाहिए:
1 स्क्रीन == 1 एपीआई कॉल
1 सेव == 1 एपीआई कॉल।
ऐसी कई स्थितियाँ हैं, जहाँ यह आपको उदाहरण के लिए REST डिज़ाइन सिद्धांतों के साथ टकराव के पाठ्यक्रम पर रखती है:
- मान लीजिए कि आपका एप्लिकेशन एक दिन के लिए ऑफ़लाइन हो गया है और आपको बैक-एंड डेटाबेस की चार तालिकाओं के साथ सिंक करने की आवश्यकता है और आपको कॉल की आवश्यकता है
www.example.com/sync_everything?since=2015-07-24
- मान लीजिए कि एक स्क्रीन है जहां उपयोगकर्ता अपनी कई वस्तुओं को संपादित कर सकता है, उदाहरण के लिए उसकी टूडू सूची में कार्यों को टिक करना। प्रति एक एपीआई कॉल के बजाय एक एकल बैच एपीआई कॉल में उन सभी कार्यों के रिकॉर्ड को संपादित करने का एक तरीका होना चाहिए।
- मान लीजिए कि एक स्क्रीन है जो ORDER, SALESMEN और PRODUCT db तालिकाओं की जानकारी को मिलाती है, मुझे उस डेटा को तीन के बजाय एक कॉल में प्राप्त करना चाहिए।
जोखिम यह है कि हम सबसे अधिक आराम करने वाले एपीआई के साथ समाप्त हो सकते हैं और वहाँ सबसे बेकार अनुत्तरदायी मोबाइल ऐप भी है।
बात यह है कि मैं केवल एक नया ठेकेदार हूं और मुझे जिस चीज की आवश्यकता है वह है जो मुझे उन बिंदुओं, कुछ लेखों को अच्छी तरह से सम्मानित स्रोतों से या कुछ ऐसा करने में मदद करता है। अपने मोबाइल ग्राहक के लिए REST शैली के साथ समझौता करने वाले प्रमुख खिलाड़ी (जैसे: समग्र समुच्चय एपीआई अंत बिंदुओं का उपयोग करके)।
या इस सामान्य समस्या के लिए कोई समाधान। धन्यवाद!