Theory
Servers से बात करना जिनके आप Owner नहीं हैं
अब तक FestConnect Mobile Firebase से बात करता था, एक backend जो आपने set up किया। पर apps को अक्सर दूसरे servers से data चाहिए होता है: एक weather feed, एक maps service, एक public events listing, systems जिनके आप owner नहीं हैं और change नहीं कर सकते। आपकी app इनसे data कैसे पाती है?
एक API के through, और specifically एक web service के through। यह final unit आपकी Android app external web APIs consume करने के बारे में है: internet पर एक request भेजना और वापस आने वाला data इस्तेमाल करना। यह lesson API और web service define करता है; unit का बाकी हिस्सा दिखाता है Android से actually एक कैसे call करें।
Theory
API और Web Service
एक API (Application Programming Interface) rules का एक defined set है जिससे एक program दूसरे से services या data request कर सकता है। यह एक contract है: 'इस तरीके से पूछिए, और यह वापस मिलेगा'। APIs programs को एक-दूसरे के internals जाने बिना cooperate करने देते हैं।
एक web service एक API है जिसे आप web पर (HTTP पर) पहुँचते हैं। आपकी app service के URL (एक endpoint) को एक request भेजती है, और service data के साथ reply करती है, आमतौर पर JSON। चूँकि यह standard web protocols पर काम करता है, एक web service platform-independent है: आपकी Android app (Kotlin) किसी भी language में लिखी एक service call कर सकती है, कहीं भी running। वह interoperability ही पूरा point है।
Formula
एक Endpoint को Request, Data वापस
Mental model simple है: आपकी app एक web service के endpoint (https://api.example.com/events जैसा एक URL) को एक HTTP request भेजती है, और service वापस data (typically JSON) भेजती है जिसे आपकी app फिर इस्तेमाल करती है।
तो एक web service consume करना internet पर एक conversation है: सही URL पर पूछिए, structured data receive कीजिए, इसे display या process कीजिए। इस unit में सब कुछ, REST, JSON parsing, Volley, GET और POST, Android से वह conversation सही तरीके से करने के बारे में है। यह picture ध्यान में रखिए: endpoint in, JSON out।
Quiz
एक web service क्या है?
- एक website जो humans के browser में पढ़ने के लिए designed है
- Web (HTTP) पर accessed एक API जो programs को data exchange करने देता है, आमतौर पर JSON, platforms के across
- एक तरह का Android layout
- Phone पर stored एक database
Show the answer
Web (HTTP) पर accessed एक API जो programs को data exchange करने देता है, आमतौर पर JSON, platforms के across
एक web service web (HTTP) पर पहुँची एक API है: programs इसके endpoint को requests भेजते हैं और structured data (आमतौर पर JSON) receive करते हैं, और चूँकि यह standard web protocols इस्तेमाल करता है यह languages और platforms के across काम करता है। Option A एक normal website describe करता है जो एक browser में human eyes के लिए meant है; एक web service PROGRAMS serve करता है और data return करता है, एक styled page नहीं। Option C unrelated है: layouts UI define करते हैं, remote data exchange नहीं। Option D local, on-device storage describe करता है; एक web service internet पर पहुँची एक REMOTE service है। Essence: programs के data exchange करने के लिए HTTP पर एक API।
Think first
सब कुछ खुद build करने की बजाय External Web Services क्यों Consume करें?
आपकी app किसी और की API क्यों call करेगी बजाय खुद सारा data provide करने के? फिर tap कीजिए।
Show the answer
क्योंकि कोई भी single app users को चाहिए सारा data और functionality produce नहीं कर सकती, और web services आपको specialist systems में TAP IN करने देते हैं जो पहले से इसे अच्छी तरह करते हैं, enormous effort बचाते हुए और richer features देते हुए। सोचिए एक app को क्या चाहिए हो सकता है: current weather, maps और directions, currency rates, payment processing, translation, SMS भेजना, public events की एक feed। इनमें से किसी को भी scratch से build और maintain करना एक massive project होता, worldwide weather data gather करना, हर road map करना, exchange rates current रखना, और यह foolish होता उसे duplicate करना जो dedicated providers पहले से APIs के through offer करते हैं। उनके web services CONSUME करके, आपकी app weather service से weather मांगती है, maps service से directions, payments service से एक card charge करने के लिए, और अपना effort उस पर focus करती है जो इसे unique बनाता है। यही reason है software libraries और services से build होता है scratch से reinvent करने की बजाय: specialisation और reuse। Web services इसे internet के across practical बनाते हैं क्योंकि ये platform-independent हैं, आपकी Kotlin app किसी भी चीज़ में लिखी एक service call कर सकती है, तो data और capability का एक पूरा ecosystem एक simple HTTP request से available हो जाता है। Trade-offs हैं उन providers पर dependence (उनका uptime, pricing, और terms) और network access चाहिए, यही वजह है आप errors भी handle करते हैं और कभी-कभी cache करते हैं। पर world की APIs से, plus अपने खुद के logic से, अपनी app compose करने की ability modern apps को इतना capable बनाने का बड़ा हिस्सा है। World की services reuse कीजिए; सिर्फ़ वह build कीजिए जो uniquely आपका है।
Summary
Key takeaways
- एक API (Application Programming Interface) rules का एक defined set है एक program के दूसरे से services या data request करने के लिए।
- एक web service web (HTTP) पर accessed एक API है, programs को data exchange करने देती है (आमतौर पर JSON) platforms के across।
- यह unit Android app के external web APIs consume करने के बारे में है (Firebase से आगे)।
- App service के endpoint (URL) को एक HTTP request भेजती है और structured data वापस receive करती है।
- Web services platform-independent हैं, तो एक Kotlin app किसी भी language में लिखी एक service call कर सकती है।
- External services consume करना आपकी app को specialist data और functionality reuse करने देता है बजाय सब कुछ खुद build करने के।
- Memory hook: एक API programs के बीच एक contract है; एक web service वह API HTTP पर है, endpoint in, JSON out।