Saturday, January 20, 2018

API అంటే ఏమిటి?

API అంటే ఏమిటి?

ఇక్కడకి (అనగా, అమెరికాకి) కొత్తగా వలస వచ్చిన H1B ఉద్యోగుల మాటలలో తరచు వినబడే పదబంధాలలో API ఒకటి. నేను చదువుకునే రోజులలో ఈ పదబంధం ఎప్పుడూ వినలేదు. అంతర్జాలం వాడుకలోకి వచ్చిన తరువాత దీని వాడుక పెరిగింది.

API అంటే ఏమిటి? సాంకేతికంగా API అంటే Applications Program Interface. తెలుగులో "అనువర్తన క్రమణికల అంతర్ముఖం."  ఇది కంప్యూటర్ రంగంలో తరచుగా తారసపడే ఒక పారిభాషిక పదజాలం. చాలా కంపెనీలు తమతమ ఖాతాదారుల కొరకు గాని, తమ స్వంత సిబ్బంది వాడుకోడానికి కాని API లని నిర్మిస్తూ ఉంటారు. టూకీగా, అందరికీ అర్థం అయేలా చెప్పడానికి రెండు ఉపమానాలు వాడతాను.

మొదటి ఉపమానం: మా మావయ్య వకీలు ఉద్యోగం చేసేవారు. వారింటి వీధి గుమ్మంలో ఆయన కచేరీ ఉండేది. లావాదేవీలు ఉన్న వ్యవహర్తలు ఆయనని చూడడానికి వీధి గుమ్మం ద్వారా వచ్చేవారు. ఆ ఇంటికి ఒక నాలుగిళ్ల వాకిలి ఉండేది. ఆ వాకిట్లోకి రావాలంటే పక్క వీధిలో ఉన్న గుమ్మం గుండా రావాలి. పాల మనిషి, కూరలమ్మే మనిషి, ఇంటికి వచ్చిపోయే బంధుమిత్రులు, పిల్లకాయలు, ఈ పక్క గుమ్మం వాడుకునేవారు. పెరట్లో మరొక గుమ్మం ఉండేది. పనిమనుష్యులు, పశువుల కాపర్లు, వగైరా పెరటి గుమ్మం వాడేవారు. ఈ మూడు గుమ్మాలు ఆ ఇంటికి "ముఖద్వారాలు;" అనగా, బయటి ప్రపంచంతో ఏ పని జరగవలసి వచ్చినా వీటి గుండా జరగాలి. ఆ ఇల్లే ఒక వెబ్‌సైటు (జాలస్థలి) అనుకుంటే ఈ ముఖద్వారాలని APIలు అనొచ్చు. అనగా API లు అనేవి ఒక జాలస్థలితో "సంభాషణ" జరపడానికి వెసులుబాటు కల్పించే సాధనాలు.

జాలస్థలి అంటే వెబ్‌సైట్ అని చెప్పేను కదా. జాలం అంటే "వెబ్" - అనగా ప్రపంచ వ్యాప్తంగా అల్లిబిల్లిగా అల్లుకుపోయి ఉన్న కంప్యూటర్ల సమూహం. ఒక కంప్యూటర్ని, అది చేసే పనినిబట్టి, కంప్యూటర్ అని అనొచ్చు లేదా పరిచారిక (server) అనిన్నీ అనొచ్చు. ఇంట్లో పని చేసే మనిషిని "పనిమనిషి" అనిన్నీ, అదే మనిషి ఆఫీసులో పని చేస్తే గుమస్తా అనిన్నీ అనటం లేదూ. అలాగే, కొన్ని కంపూటర్లని సర్వర్లు (పరిచారికలు) అని పిలుస్తారు. వడ్డన చేసేవాడిని ఏది అడిగితే అది వడ్డించట్లే పరిచారికలు ఏది అడిగితే దానిని మనకి అందిస్తాయి.

ఇప్పుడు API కి మరొక ఉదాహరణ ఇస్తాను. నేను ఒక వైద్యుడిని అనుకుందాం. నన్ను చూడడానికి వచ్చే రోగులు బయట వరండాలో పడిగాపులు పడుతూ కూర్చోనక్కర లేకుండా ఒక సదుపాయం ప్రవేశపెడదాం. అందుకుగాను నేను ఒక కంప్యూటరు మీద ఒక జాలస్థలిని నిర్మిస్తాను. ఆ జాలస్థలి లో ఒక కేలండరుని కూడా అమర్చుతాను. నన్ను చూడడానికి వచ్చేవాళ్లు నేరుగా నా క్లినిక్ కి వచ్చేయకుండా ముందు నా జాలస్థలిలో ఉన్న కేలండరుని సంప్రదిస్తారు.  ఆ కేలండరులో ఎప్పుడు ఖాళీ ఉందో చూసుకుని అక్కడ వారు వాళ్ల పేరు రాసుకునే సదుపాయం చేసేననుకుందాం.

నా వెబ్‌సైట్ లో కేలండర్ ని అమర్చడం ఎలా? "గోడ మీద కేలండరు" ఎక్కడనుండి వస్తోంది? ఎవ్వరో పంచాగకర్త తయారు చేసిన అంశాలని ముద్రణాలయం వారు అందంగా ముద్రించి ఇవ్వడం లేదూ? అలాగే "కంప్యూటరు కేలండర్లు" చెయ్యడం చేతనయిన వాళ్లు కేలండరు ప్రోగ్రాము రాసి అమ్ముతారు. వీళ్లని మూడవ పక్షం (third party) అంటారు. కేలండరు ప్రోగ్రాము రాసే ముందు వీరికి  జాలస్థలాలికి అమర్చడానికి అవసరమైన హంగులు తెలియాలి కదా. ఆ అంశాలని తెలియపరచేదే API.

మరొక ఉదాహరణ.  మా ఊళ్లో వరుణ్ అనే ఆసామీ ఉన్నాడు. అతనికి వాతావరణం గురించి అన్ని విషయాలు కూలంకషంగా తెలుసు. రేపు ఎండ కాస్తుందా, మబ్బుగా, ఉంటుందా, వర్షం పడుతుందా, అన్న ప్రశ్న ఏదైనా ఉంటే అతనిని టెలిఫోనులో పిలచి అడగొచ్చు.

మనం పిలచి అడిగినప్పుడు మన ప్రశ్న ఒక నిర్దిష్టమైన పద్ధతిలో అడగాలి.  ఉదాహరణకి: “<<రేపు/ఎల్లుండి/ఫలా రోజున>> <<వేడిగా/మబ్బుగా వర్షంగా>> ఉంటుందా? అని ఒక క్రమ పద్ధతిలో అడగాలి. అప్పుడు వరుణ్ సమాధానం చెబుతాడు. ఇదే విధంగా API ని కూడా పిలవొచ్చు.  ఇంతమంది పిలుస్తూ ఉంటే వరుణ్ తట్టుకోలేడు కదా. అందుకని మన పిలుపుని అందుకోడానికి అవతల పక్కన వరుణ్ కి బదులు ఒక పరిచారిక ఉంటుంది.  మనం వరుణ్ ని  టెలిఫోనులో పిలచినట్లు పరిచారికని పిలవలేము కదా. అందుకని మన కంప్యూటరులో ఉన్న బ్రౌజర్ తెరచి దాంట్లో మన ప్రశ్నని టైపు చేస్తాం. ఈ సందర్భంలో మన బ్రౌజర్ (Chrome, Firefox, Safari వగైరాలు) ని క్లయంట్ అంటారు.  మనం పంపించే ప్రశ్నని HTML request అంటారు.

ఇలా చెప్పుకుంటూ పోతే ఇది ఒక చేటభారతంలా తయారవుతుంది కనుక ఇక్కడ ఆపుతాను.