Theory
Servers સાથે વાત કરવી જે તમારા નથી
હમણાં સુધી FestConnect Mobile Firebase સાથે વાત કરતું હતું, જે તમે set up કરેલું backend છે. પરંતુ appsને ઘણીવાર બીજા servers પાસેથી data જોઈએ છે: weather feed, maps service, public events listing અથવા એવા systems જે તમારા નથી અને તમે બદલી પણ શકતા નથી. App આ data કેવી રીતે મેળવે?
API, અને ખાસ કરીને web service દ્વારા. આ final unitમાં તમારું Android app external web APIs consume કરશે: internet પર request મોકલશે અને પાછો આવેલો data ઉપયોગ કરશે. આ lesson API અને web serviceની definition આપે છે; unitના બાકીના ભાગમાં Androidમાંથી API call કેવી રીતે કરવી તે શીખશો.
Theory
API અને web service
API (Application Programming Interface) એ defined rulesનો સમૂહ છે, જેના દ્વારા એક program બીજા program પાસેથી services અથવા data માંગી શકે છે. તે એક contract જેવી છે: 'આ રીતે પૂછશો તો આ પ્રકારનો જવાબ મળશે.' APIs programsને એકબીજાના અંદરના implementation જાણ્યા વગર સાથે કામ કરવા દે છે.
Web service એટલે web પર પહોંચાતી API (HTTP દ્વારા). તમારું app serviceના URL, એટલે કે endpoint, પર request મોકલે છે અને service data સાથે reply કરે છે, સામાન્ય રીતે JSONમાં. Standard web protocols વાપરવાને કારણે web service platform-independent હોય છે: Kotlinમાં બનેલું Android app કોઈ પણ languageમાં લખાયેલી અને ક્યાંય ચાલતી serviceને call કરી શકે છે. આ interoperability જ તેનો મુખ્ય હેતુ છે.
Formula
Endpointને request, પાછો data
Mental model simple છે: app web serviceના endpoint (જેમ કે https://api.example.com/events) પર HTTP request મોકલે છે અને service પાછો data મોકલે છે, સામાન્ય રીતે JSONમાં. App પછી એ data display અથવા process કરે છે.
Web service consume કરવું એટલે internet પર conversation કરવી: સાચા URL પર પૂછો, structured data મેળવો. આ unitના REST, JSON parsing, Volley, GET અને POST જેવા topics Androidમાંથી આ conversation યોગ્ય રીતે કરવા માટે છે. આ picture યાદ રાખો: endpoint in, JSON out.
Quiz
Web service શું છે?
- Browserમાં માણસો વાંચે તે માટે બનાવેલી website
- Web (HTTP) પર access થતી API, જે programsને platforms વચ્ચે data, સામાન્ય રીતે JSON, exchange કરવા દે છે
- Android layoutનો એક પ્રકાર
- Phoneમાં stored database
Show the answer
Web (HTTP) પર access થતી API, જે programsને platforms વચ્ચે data, સામાન્ય રીતે JSON, exchange કરવા દે છે
Web service એ web (HTTP) દ્વારા પહોંચાતી API છે: programs તેના endpoint પર requests મોકલે છે અને structured data, સામાન્ય રીતે JSON, મેળવે છે. Standard web protocolsને કારણે તે languages અને platforms વચ્ચે કામ કરે છે. Option A માણસો માટે browserમાં દેખાતી normal website વર્ણવે છે; web service PROGRAMS માટે હોય છે અને styled pageને બદલે data આપે છે. Option C UI layout માટે છે, remote data exchange માટે નહીં. Option D local phone storage છે; web service internet દ્વારા મળતી REMOTE service છે. Core idea: programs વચ્ચે data exchange માટે HTTP ઉપર ચાલતી API.
Think first
બધું જાતે બનાવવાને બદલે external web services શા માટે વાપરવી?
તમારું app બધો data પોતે આપવાને બદલે કોઈ બીજાની API શા માટે call કરે? પછી tap.
Show the answer
કારણ કે કોઈ એક app usersને જોઈતી બધી માહિતી અને functionality પોતે બનાવી શકતું નથી. Web services તમને specialist systemsનો ઉપયોગ કરવા દે છે, જે કામ તેઓ પહેલેથી સારી રીતે કરે છે. Appને current weather, maps અને directions, currency rates, payment processing, translation, SMS sending અથવા public events feedની જરૂર પડી શકે છે. દરેક વસ્તુ scratchથી બનાવવી અને maintain કરવી બહુ મોટું કામ છે: દુનિયાભરનો weather data ભેગો કરવો, દરેક road map કરવો, exchange rates update રાખવા અથવા payment system સુરક્ષિત રીતે ચલાવવું. Dedicated providers આ capabilities APIs દ્વારા આપે છે.
તેમની web services consume કરીને app weather service પાસેથી weather, maps service પાસેથી directions અને payment service પાસેથી payment processing મેળવી શકે છે, જ્યારે પોતાનું unique કામ પોતે કરે છે. આ libraries અને servicesના reuse જેવું જ છે: દરેક વખતે બધું reinvent કરવાને બદલે specialization અને reuse. Web services platform-independent હોવાથી Kotlin app કોઈ પણ languageમાં લખાયેલી serviceને simple HTTP requestથી call કરી શકે છે.
Trade-offs પણ છે: providerના uptime, pricing અને terms પર dependency રહે છે, અને network access જરૂરી બને છે. તેથી errors handle કરવા અને ક્યારેક data cache કરવું પડે છે. છતાં, દુનિયાની APIsને પોતાના logic સાથે compose કરવાની ક્ષમતા modern appsને શક્તિશાળી બનાવે છે. જે uniquely તમારું છે તે બનાવો અને બાકીની specialist services reuse કરો.
Summary
Key takeaways
- API (Application Programming Interface) એ એક programને બીજા program પાસેથી services અથવા data માંગવા માટેના defined rules છે.
- Web service એ web (HTTP) દ્વારા access થતી API છે, જે programsને platforms વચ્ચે data, સામાન્ય રીતે JSON, exchange કરવા દે છે.
- આ unitમાં Android app Firebaseની બહારની external web APIs consume કરશે.
- App serviceના endpoint (URL) પર HTTP request મોકલે છે અને structured data પાછો મેળવે છે.
- Web services platform-independent છે, તેથી Kotlin app કોઈ પણ languageમાં લખાયેલી serviceને call કરી શકે છે.
- External services વાપરવાથી app બધું પોતે બનાવવાને બદલે specialist data અને functionality reuse કરી શકે છે.
- Memory hook: API programs વચ્ચેનો contract છે; web service એ HTTP ઉપરની API છે: endpoint in, JSON out.