എന്താണ് API പിന്തുണ. ഡീസൽ എഞ്ചിനുകൾക്കുള്ള API ഗുണനിലവാര ക്ലാസുകൾ. ഒരു API ഫംഗ്‌ഷൻ വിളിക്കുന്നതിനുള്ള ഉദാഹരണം

ഈ പോസ്റ്റിൽ, ഒരു API എന്താണെന്ന് അറിയാൻ ആഗ്രഹിക്കുന്ന പരീക്ഷകർക്ക് ഉപയോഗപ്രദമായേക്കാവുന്ന വിവരങ്ങൾ ശേഖരിക്കാൻ ഞാൻ ശ്രമിച്ചു. ഈ മേഖലയിൽ പരിചയമുള്ളവർക്കും എന്തെങ്കിലും പ്രയോജനം ലഭിക്കുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. API പരിശോധനആളുകൾ. ശരി, അല്ലെങ്കിൽ കുറഞ്ഞത് എൻ്റെ ലേഖനത്തിലെ പിശകുകൾ കണ്ടെത്താൻ എന്നെ സഹായിക്കൂ :)
എന്താണ് ഒരു API

API (ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്) എന്നത് ബാഹ്യ ഉപയോഗത്തിനായി ഒരു ആപ്ലിക്കേഷൻ (ലൈബ്രറി, സേവനം) നൽകുന്ന റെഡിമെയ്ഡ് ക്ലാസുകൾ, നടപടിക്രമങ്ങൾ, പ്രവർത്തനങ്ങൾ, ഘടനകൾ, സ്ഥിരതകൾ എന്നിവയുടെ ഒരു കൂട്ടമാണ്. സോഫ്റ്റ്വെയർ ഉൽപ്പന്നങ്ങൾ(വിക്കിപീഡിയ).

മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, മറ്റുള്ളവരുടെ ജോലികൾ നമ്മുടെ സ്വന്തം ആവശ്യങ്ങൾക്കായി ഉപയോഗിക്കാനുള്ള അവസരം API നൽകുന്നു. ഞാൻ ആദ്യം API നേരിട്ടത് ഓണാണ് വിൻഡോസ് ഉദാഹരണം API. തന്നിരിക്കുന്ന OS-ൽ പ്രവർത്തിക്കുന്ന ഏതൊരു ആപ്ലിക്കേഷനും ഉപയോഗിക്കാവുന്ന ഫംഗ്‌ഷനുകളുടെ ഒരു കൂട്ടമാണിത്. ഉദാഹരണത്തിന്, ഇത് ഉപയോഗിക്കാം സ്റ്റാൻഡേർഡ് സവിശേഷതകൾഇൻ്റർഫേസ് റെൻഡർ ചെയ്യാൻ.

ആധുനിക API-കൾ പലപ്പോഴും ഉപയോക്താക്കൾക്ക് വിവരങ്ങൾ നൽകുന്ന വെബ് സേവനങ്ങളുടെ രൂപമാണ് (മനുഷ്യരും മറ്റ് വെബ് സേവനങ്ങളും). സാധാരണഗതിയിൽ, വിവര കൈമാറ്റ നടപടിക്രമവും ഡാറ്റാ ട്രാൻസ്ഫർ ഫോർമാറ്റും ഘടനാപരമായിരിക്കുന്നതിനാൽ ഇരു കക്ഷികൾക്കും പരസ്പരം എങ്ങനെ ഇടപഴകണമെന്ന് അറിയാം.

വെബ്സൈറ്റിൽ https://dev.hh.ru/ (കൂടുതൽ കൃത്യമായി, https://github.com/hhru/api/blob/master/docs/general.md) നിങ്ങൾക്ക് HeadHunter API ക്ലയൻ്റുകളെക്കുറിച്ചും സേവനങ്ങൾ പരസ്പരം ഇടപഴകുന്നു. ഉദാഹരണത്തിന്, സൈറ്റിൽ നിന്നുള്ള ഒരു ഉദ്ധരണി:

  • എല്ലാ API-കളും HTTPS പ്രോട്ടോക്കോളിൽ പ്രവർത്തിക്കുന്നു.
  • OAuth2 പ്രോട്ടോക്കോൾ ഉപയോഗിച്ചാണ് അംഗീകാരം നൽകുന്നത്.
  • എല്ലാ ഡാറ്റയും JSON ഫോർമാറ്റിൽ മാത്രമേ ലഭ്യമാകൂ.
  • അടിസ്ഥാന URL - https://api.hh.ru/
  • തീയതികൾ ISO 8601 പ്രകാരം ഫോർമാറ്റ് ചെയ്തിരിക്കുന്നു: YYYY-MM-DDThh:mm:ss±hhmm
നിങ്ങൾക്ക് HH API വായിക്കാം - ഇതാണ് നല്ല ഉദാഹരണംഉപയോക്തൃ ഡോക്യുമെൻ്റേഷൻ.

ഡാറ്റ ട്രാൻസ്മിഷൻ ഫോർമാറ്റുകൾ

ഉപയോക്താക്കൾ API-കളുമായി സംവദിക്കുന്ന നിരവധി ഡാറ്റ ഫോർമാറ്റുകൾ ഉണ്ട്. ഉദാഹരണത്തിന്, അറിയപ്പെടുന്ന XML. അല്ലെങ്കിൽ JSON - ഭാരം കുറഞ്ഞതും സങ്കീർണ്ണമല്ലാത്തതുമായ ഫോർമാറ്റ്:

( "id": "0001", "type": "donut", "name": "cake", "image": ( "url": "images/0001.jpg", "width": 200, "height" ": 200)) പി ഓ ss അതിൽ നിന്നുള്ള ഉത്തരങ്ങൾ നിങ്ങൾക്ക് ചുവടെ കാണാം മീഡിയവിക്കിഎപിഐ , വ്യത്യസ്ത ഫോർമാറ്റുകളിൽ :

JSON:https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&format=jsonfm
XML: https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&format=xmlfm
PHP: https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&format=php ( ശ്രദ്ധാപൂർവ്വം, സംഭവിക്കും റോക്കിംഗ് കൊണ്ട്ഫയൽ)

HTTP ജി ലഗോളുകൾ

സാധാരണയായി പി വെബ് API ആക്സസ് ചെയ്യുമ്പോൾഉപയോഗിക്കുന്നത് എല്ലാ HTTP അഭ്യർത്ഥനകളും ഉണ്ട് . അതുകൊണ്ടാണ്ഇതിനെക്കുറിച്ച് എനിക്ക് ചുരുക്കമായി പറയേണ്ടതുണ്ട് സാധാരണ രീതികൾ, അതിൽ അടങ്ങിയിരിക്കാം HTTP അഭ്യർത്ഥന . ഈ രീതികൾ HTTP ക്രിയകൾ എന്നും വിളിക്കുന്നു :

  • നേടുക. ഒരുപക്ഷേ ഏറ്റവും ജനപ്രിയമായ തരം അഭ്യർത്ഥന. ഡാറ്റ സ്വീകരിക്കുന്നതിനോ വായിക്കുന്നതിനോ ഉപയോഗിക്കുന്നു.
  • പുട്ട്. കസ്റ്റം എൻ കുറിച്ച് ഒപ്പം spo ഒരു റിസോഴ്സ് അപ്ഡേറ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു .
  • പോസ്റ്റ്. ഒരു പുതിയ ഉറവിടം സൃഷ്ടിക്കാൻ സാധാരണയായി ഉപയോഗിക്കുന്നു.
  • ഇല്ലാതാക്കുക. ഡാറ്റ ഇല്ലാതാക്കുന്നു.
  • മറ്റുള്ളവരും
ഒരു വിഭവത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കണമെങ്കിൽ,ഇതിൻ്റെ യു.ആർ.ഐ http://www.example.com/customers/12345 , ഞങ്ങൾക്ക് ഒരു അഭ്യർത്ഥന അയയ്ക്കാം:
http://www.example.com/customers/12345 നേടുക

ഞങ്ങൾക്ക് ഒരു ഉറവിടം അപ്‌ഡേറ്റ് ചെയ്യണമെങ്കിൽ - ഞങ്ങൾക്ക് ഒരു PUT അഭ്യർത്ഥന അയയ്ക്കാം:
ഇടുക http://www.example.com/customers/12345/orders/98765

പതിവ് അഭ്യർത്ഥനകൾ നേടുകഒരു വെബ് ബ്രൗസർ അയയ്ക്കാൻ കഴിവുള്ള. മറ്റ് തരത്തിലുള്ള അഭ്യർത്ഥനകൾക്ക് സ്ക്രിപ്റ്റിംഗ് ഭാഷകൾ ആവശ്യമായി വന്നേക്കാം അല്ലെങ്കിൽ പ്രത്യേക ഉപകരണങ്ങൾ(ഇതിനെക്കുറിച്ച് കൂടുതൽ ചുവടെ).

HTTP-യെ കുറിച്ച് രീതികൾ കൂടുതൽ വിശദമായി വായിക്കാം ചെയ്തത് W ന് iki.

HTTP ഉത്തരങ്ങൾ വരെ

സെർവറിന് അയയ്ക്കാൻ കഴിയും വ്യത്യസ്ത കോഡുകൾഉപയോക്തൃ അഭ്യർത്ഥനകളോടുള്ള പ്രതികരണമായി. ഇവ പിശക് കോഡുകളോ സെർവറിൻ്റെ അവസ്ഥയെക്കുറിച്ച് ഉപയോക്താക്കളെ അറിയിക്കുന്ന കോഡുകളോ ആകാം. വിശദമായ വിവരണംവിക്കിയിൽ വീണ്ടും കാണാം.

4xx (ക്ലയൻ്റ് സൈഡ് പ്രശ്നങ്ങൾ), 5xx (സെർവർ സൈഡ് പ്രശ്നങ്ങൾ) എന്നിവയാണ് ഏറ്റവും അറിയപ്പെടുന്ന കോഡുകൾ. ഒരു നിശ്ചിത സാഹചര്യത്തിൽ ഏതൊക്കെ കോഡുകൾ തിരികെ നൽകണമെന്ന് API ഡവലപ്പർമാർക്ക് തീരുമാനിക്കാം. ഉദാഹരണത്തിന്, Odnoklassniki വെബ്‌സൈറ്റിൻ്റെ API കോഡുകൾ നൽകുന്നു, ഇതിൻ്റെ വിവരണം https://apiok.ru/wiki/pages/viewpage.action?pageId=77824003 എന്ന പേജിൽ കാണാം.

കൂടാതെ, അഭ്യർത്ഥന പ്രതികരണ ഗാനം കേൾക്കാൻ ഞാൻ നിങ്ങളെ ഉപദേശിക്കുന്നു - തിരികെ നൽകിയ കോഡുകളെ കുറിച്ച് ലളിതവും വ്യക്തവുമാണ് HTTP അഭ്യർത്ഥനകൾ(സൂക്ഷിക്കുക, ചെറുക്കനെ :)).


REST API

REST API എന്നത് പോസ്റ്റിൻ്റെ പ്രത്യയശാസ്ത്രമാണ് കൂട്ടംകൂട്ടമായി എ.പി.ഐപ്രതിനിധി സംസ്ഥാന കൈമാറ്റം API. അതിൻ്റെ സ്രഷ്ടാവ് രൂപപ്പെടുത്തിയ ഇനിപ്പറയുന്ന തത്വങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ഇത് , റോയ് ഫീൽഡിംഗ്:

  1. ക്ലയൻ്റ്-സെർവർ ആർക്കിടെക്ചർ
  2. നിലയില്ലാത്ത സെർവർ
  3. കാഷെബിലിറ്റി
  4. മൾട്ടി ലെയർ ഘടന
  5. ഏകീകൃത ഇൻ്റർഫേസ്
  6. അഭ്യർത്ഥന പ്രകാരം കോഡ്
ഞാൻ വിശദാംശങ്ങളിലേക്ക് പോകുന്നില്ല, പക്ഷേ വിഷയത്തെക്കുറിച്ച് വായിക്കാൻ ആഗ്രഹിക്കുന്നവരെ എനിക്ക് ഉപദേശിക്കാൻ കഴിയും

നിങ്ങള്ക്ക് പട്ടി ഉണ്ടോ. പക്ഷേ അവൾ മിണ്ടുന്നില്ല മനുഷ്യ ഭാഷ. എന്നിരുന്നാലും, പരിശീലന പ്രക്രിയയിൽ അവൾ പഠിപ്പിച്ച ആജ്ഞകളിലൂടെ അവനെ "മനസ്സിലാക്കാൻ" അവൾക്ക് കഴിയും. നായയോട് പറഞ്ഞാൽ ടീമിനെ ആർക്കറിയാം"സ്ലിപ്പറുകൾ!" "റെക്സിക്, ചെറിയ മുയലുകളുള്ള എൻ്റെ സ്ലിപ്പറുകൾ എനിക്ക് കൊണ്ടുവരൂ" എന്നതുപോലുള്ള ഒന്ന്, അവൻ ഒരുപക്ഷേ പേര് കേൾക്കും, പക്ഷേ സ്ലിപ്പറുകൾ കൊണ്ടുവരില്ല. അതിനാൽ, നിങ്ങളുടെ നായ നിങ്ങളെ മനസിലാക്കുകയും നിങ്ങൾക്ക് ആവശ്യമുള്ളത് ചെയ്യുകയും ചെയ്യുന്ന ഒരു കൂട്ടം കമാൻഡുകൾ ആണ് API. ഒരു ടീപ്പോയ്‌ക്ക് ഇത് വളരെ ലളിതമാണ്, പക്ഷേ സാരാംശം വ്യക്തമാണ്, ഞാൻ കരുതുന്നു.

API എന്നത് ഒരു ഭാഷയാണ്, ചിലതിൻ്റെ സംയുക്ത നിർവ്വഹണത്തിനായി ഒരു കമ്പ്യൂട്ടർ പ്രോഗ്രാമിന് മറ്റൊന്നുമായി ആശയവിനിമയം നടത്തുന്നതിനുള്ള നിയന്ത്രിത മാർഗമാണ്. പൊതു ചുമതലഒരു പ്രോഗ്രാം മറ്റൊന്നിൽ നിന്നുള്ള അഭ്യർത്ഥനകൾ നടപ്പിലാക്കുമ്പോൾ. ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ് (API) - ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്.

അല്ലാതെ ജനിച്ച ഡമ്മികൾക്ക് ഇത് ഒരു പ്രാകൃത സാദൃശ്യമാണ്.

5 വിദേശികൾ സംസാരിക്കുന്നത് സങ്കൽപ്പിക്കുക... വ്യത്യസ്ത ഭാഷകൾറഷ്യയിൽ പറയുക, ജോലി ചെയ്ത് ഒരുമിച്ച് ജീവിക്കേണ്ടവർ. രണ്ടുപേർക്കും മറ്റൊരാളുടെ ഭാഷ അറിയില്ല, പക്ഷേ അവർ ഒരൊറ്റ ടീമായി ചില ജോലികൾ ചെയ്യേണ്ടതുണ്ട്, റോളുകളിൽ, ഉദാഹരണത്തിന്, പരസ്പരം ഭക്ഷണം നൽകുകയും റഷ്യൻ ഭാഷയിൽ ഭക്ഷണത്തിൻ്റെ രുചി ചർച്ച ചെയ്യുകയും ചെയ്യുക. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾ പലചരക്ക് സാധനങ്ങൾ വാങ്ങണം, ഭക്ഷണം പാകം ചെയ്യണം, മേശ ക്രമീകരിക്കുക, ഭക്ഷണം കഴിക്കുമ്പോൾ വിഭവങ്ങൾ ചർച്ച ചെയ്യുക. അങ്ങനെ അവർ പരസ്പരം മനസ്സിലാക്കുകയും ഉൽപ്പന്നങ്ങൾ കണ്ടെത്തുകയും ചെയ്യും പുറം ലോകം, നമുക്ക് അവരെ പരിശീലിപ്പിക്കാം അടിസ്ഥാന സെറ്റ്റഷ്യൻ വാക്കുകൾ. നമുക്ക് എന്താണ് ഉള്ളതെന്ന് സങ്കൽപ്പിക്കാം:

1. ഫ്രഞ്ചുകാരൻ

2. സ്പെയിൻകാരൻ

4. ഇംഗ്ലീഷുകാരൻ

5. ഇറ്റാലിയൻ

ഉപ ടാസ്‌ക്കുകൾ നിർവഹിക്കുന്നതിന് അവയ്ക്കിടയിൽ റോളുകൾ വിതരണം ചെയ്യാം:

ഭക്ഷണം വാങ്ങുന്നു: ഫ്രഞ്ച്, സ്പാനിഷ്

പാചക വിഭവങ്ങൾ: സ്പാനിഷ്, ജർമ്മൻ, ഇംഗ്ലീഷ്

പട്ടിക ക്രമീകരണം: ഇംഗ്ലീഷും ഇറ്റാലിയനും

രുചി വിഭവങ്ങളുടെ ഭക്ഷണവും ചർച്ചയും: എല്ലാം

ഈ ജോലികളെല്ലാം പൂർത്തിയാക്കാൻ അവർക്ക് കഴിയുന്നതിന്, പരസ്പരം സഹകരിക്കാൻ അനുവദിക്കുന്ന റഷ്യൻ വാക്കുകളുടെ ഒരു കൂട്ടം ഞങ്ങൾ എല്ലാവരേയും പഠിപ്പിക്കും. ബാഹ്യ പരിസ്ഥിതിഈ ജോലികളെല്ലാം പൂർത്തിയാക്കുക. താഴെയുള്ള ചിത്രം കാണുക.

അതുകൊണ്ട് ഇതാ. നമ്മുടെ വിദേശ സുഹൃത്തുക്കളുടെ സംഘം ഒരു ഗ്രൂപ്പാണ് കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകൾ പരസ്‌പരവും ബാഹ്യ പരിതസ്ഥിതിയുമായും ആശയവിനിമയം നടത്തേണ്ടവർ.

ഉൽപ്പന്നങ്ങളെയും അടിസ്ഥാന പ്രവർത്തനങ്ങളെയും സൂചിപ്പിക്കുന്ന ഭാഷയും വാക്കുകളുംഅത് ഉൽപ്പാദിപ്പിക്കേണ്ടതുണ്ട് ഇതൊരു API ആണ്- എല്ലാ നിയുക്ത ഉപടാസ്കുകളും പൂർത്തിയാക്കുന്നതിന് ഞങ്ങളുടെ വിദേശ സുഹൃത്തുക്കൾ റഷ്യൻ ഭാഷയിൽ പരസ്പരം ആശയവിനിമയം നടത്തുന്ന മാനദണ്ഡങ്ങൾ.

API 1: ഉൽപ്പന്നങ്ങൾക്കായുള്ള വാക്കുകൾ, എവിടെ നിന്ന് വാങ്ങണം
API 2: വിഭവങ്ങൾക്കും പാചക രീതികൾക്കുമുള്ള വാക്കുകൾ
API 3: ഉപകരണങ്ങളും അവയ്‌ക്കൊപ്പമുള്ള പ്രവർത്തനങ്ങളും സൂചിപ്പിക്കുന്ന വാക്കുകൾ
API 4: ഭക്ഷണത്തിൻ്റെ രുചിയും വിലയിരുത്തലും സൂചിപ്പിക്കുന്ന വാക്കുകൾ

ഇത് കൂടുതൽ സങ്കീർണ്ണമായേക്കാം, ഉദാഹരണത്തിന്, API 2 ടർക്കിഷ് ആയിരിക്കട്ടെ, API 3 ആണ് ചൈനീസ്, API 4 ഹിന്ദിയാണ്

ഡമ്മികൾക്കുള്ള ഉദാഹരണം:

1. ഒരു ഔട്ട്ലെറ്റ് ഉണ്ട്. അതിനു പിന്നിൽ വലിയൊരു സാങ്കേതിക വിദ്യയുണ്ട്. എന്നാൽ ഇത് ഉപയോഗിക്കുന്നതിന്, നിങ്ങൾക്ക് 3 സെൻ്റീമീറ്റർ തണ്ടുകൾക്കിടയിലുള്ള ദൂരമുള്ള ഒരു പ്ലഗ് ഉണ്ടായിരിക്കണം, സോക്കറ്റ് 220V നൽകും. ഇത് ഒരു വലിയ ഇലക്ട്രിക്കൽ പ്രൊഡക്ഷൻ സിസ്റ്റത്തിൻ്റെ API ഇൻ്റർഫേസ് ആണ്.

2. ഇരുമ്പ് ഉണ്ടോ? അവന് സ്വന്തമായുണ്ട് ഒരു സങ്കീർണ്ണ സംവിധാനംജോലി. എന്നാൽ ഒരു സോക്കറ്റിനൊപ്പം പ്രവർത്തിക്കാൻ, അത് API ആവശ്യകതകൾ പാലിക്കുന്നു - നിങ്ങൾക്ക് 3 സെൻ്റിമീറ്റർ ദൂരമുള്ള ഒരു പ്ലഗ് ആവശ്യമാണ്, പ്രതികരണമായി 220 വോൾട്ട് പ്രതീക്ഷിക്കുന്നു.

അത്രയേയുള്ളൂ. 2 സിസ്റ്റങ്ങളും സ്വതന്ത്രമാണ്, അവ വലുതും സങ്കീർണ്ണവുമാണ്. എന്നാൽ പരസ്പരം ബന്ധിപ്പിക്കുന്നത് കഴിയുന്നത്ര ലളിതമാക്കുന്നതിനാണ് API നിർമ്മിച്ചിരിക്കുന്നത്.

API - ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്. പ്രോഗ്രാമിൻ്റെ ഒരു പ്രത്യേക ഭാഗവുമായി ഇടപഴകുന്നതിനുള്ള ഒരു നിശ്ചിത ഫംഗ്ഷനുകൾ, സ്ഥിരാങ്കങ്ങൾ, ക്ലാസുകൾ, ഒരുപക്ഷേ, മറ്റ് വസ്തുക്കൾ എന്നിവയാണിത്.

ഒരു ഉദാഹരണം ഉപയോഗിച്ച് വിവരിക്കുക എന്നതാണ് ഏറ്റവും വ്യക്തമായ മാർഗമെന്ന് ഞാൻ കരുതുന്നു. നിങ്ങളുടെ പ്രോഗ്രാമിൽ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന ഒരു കാൽക്കുലേറ്റർ ആരെങ്കിലും എഴുതിയിട്ടുണ്ടെന്ന് പറയാം. ഈ കാൽക്കുലേറ്റർ എങ്ങനെയെങ്കിലും ആക്‌സസ് ചെയ്യേണ്ടതുണ്ട്. കാൽക്കുലേറ്ററുമായി ഇടപഴകുന്നതിനുള്ള ഈ വഴികളെ API എന്ന് വിളിക്കും. അവ വ്യത്യസ്തമായിരിക്കും, അവയുടെ വിവരണം കൂടാതെ ഒന്നും ചെയ്യാൻ കഴിയില്ല. ഒരു നമ്പർ മെമ്മറിയിലേക്ക് എഴുതാനും മറ്റൊന്ന് ഒരു പ്രവർത്തനം നടത്താനും മറ്റൊന്ന് ഫലം നേടാനും നിങ്ങൾക്ക് ഒരു ഫംഗ്ഷൻ ഉണ്ടായിരിക്കാം. അല്ലെങ്കിൽ നിങ്ങൾക്ക് ഒരു ഫംഗ്‌ഷൻ ഉണ്ടായിരിക്കാം, അത് രണ്ട് നമ്പറുകളും അവയ്‌ക്കിടയിൽ ഓപ്പറേഷൻ കോഡും കൈമാറുകയും ഉടൻ ഉത്തരം നൽകുകയും ചെയ്യും.

അത്തരം വിവരണങ്ങൾ എല്ലാറ്റിനും വേണ്ടിയുള്ളതാണ്. ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് ഒരു API ഉണ്ട്, ഇത് ഒരു പ്രോഗ്രാം സൃഷ്ടിച്ച ഫംഗ്ഷനുകളുടെ ഒരു കൂട്ടമാണ്: ഇൻസ്റ്റാൾ ചെയ്യുക നെറ്റ്വർക്ക് കണക്ഷൻ, ഒരു വിൻഡോ വരയ്ക്കുക, ഒരു ബട്ടൺ ക്ലിക്ക് പ്രോസസ്സ് ചെയ്യുക. ഏതോഒരാള് API സെർവർഅത് നിർവ്വഹിക്കുന്ന പ്രവർത്തനങ്ങളുടെ ഒരു കൂട്ടമാണ്. ബ്രൗസർ വിക്കിപീഡിയ സൈറ്റിലേക്ക് പ്രവേശിക്കുന്നു - നിങ്ങളുടെ അഭ്യർത്ഥനയ്ക്കുള്ള പ്രതികരണം നൽകാൻ ഇത് API ഉപയോഗിക്കുന്നു.

API-കൾക്കൊപ്പം പ്രവർത്തിക്കുന്നത് പ്രതിഫലദായകവും നിരാശാജനകവുമാണ്. ഒരു വശത്ത്, മറ്റ് ആപ്ലിക്കേഷനുകളുമായി ഇടപഴകുന്നതിലൂടെ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ പ്രേക്ഷകരുടെ എത്തിച്ചേരലും "വൗ" ഇഫക്റ്റും നിങ്ങൾക്ക് വളരെയധികം വർദ്ധിപ്പിക്കാൻ കഴിയും. മറുവശത്ത്, ഇതിൽ ടൺ കണക്കിന് ഡോക്യുമെൻ്റേഷൻ വായിക്കുക, പ്രാമാണീകരണ തന്ത്രങ്ങൾ പഠിക്കുക, വിവരമില്ലാത്ത (അല്ലെങ്കിൽ പോലും നഷ്‌ടമായ) പിശക് സന്ദേശങ്ങൾ പാഴ്‌സ് ചെയ്യുക എന്നിവ ഉൾപ്പെടുന്നു.

ഒന്നാമതായി, ഒരു API (അപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്) എന്താണെന്ന് നിങ്ങൾക്ക് ഇപ്പോഴും പൂർണ്ണമായി മനസ്സിലായില്ലെങ്കിൽ, സ്കിൽക്രഷിൻ്റെ വിശദീകരണവും തുടർന്ന് ഈ ലേഖനത്തിൻ്റെ ആദ്യ ഭാഗവും വായിക്കുക.

"API" എന്നത് അവിശ്വസനീയമാംവിധം വിശാലമായ ആശയമാണ് - ഓരോ തവണയും നിങ്ങളുടെ ആപ്ലിക്കേഷൻ മറ്റൊരു ആപ്ലിക്കേഷനുമായി "സംസാരിക്കുമ്പോൾ" അത് ഏതെങ്കിലും തരത്തിലുള്ള API വഴിയാണ് ചെയ്യുന്നത്. നിങ്ങളുടെ സ്വന്തം ആപ്ലിക്കേഷനിലെ ഘടകങ്ങൾ, പോലെ വിവിധ ഭാഗങ്ങൾഎപിഐകൾ വഴിയും റെയിലുകൾ പരസ്പരം ആശയവിനിമയം നടത്തുന്നു. അവ ഓരോരുത്തർക്കും അവരവരുടെ പ്രത്യേക ജോലികൾ നിർവഹിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ നൽകുന്ന കൂടുതലോ കുറവോ സ്വതന്ത്രമായ ഉപ-ആപ്ലിക്കേഷനുകളാണ്. ആപ്പ് ലോകത്ത്, എല്ലാം ഒരു API ആണ്!

കൂടുതൽ ഡൈനാമിക് ഫ്രണ്ട് എൻഡ് പ്രവർത്തനക്ഷമതയുള്ള ആപ്ലിക്കേഷനുകൾ നിങ്ങൾ സൃഷ്ടിക്കുമ്പോൾ (ഒറ്റ-പേജ് ജാവാസ്ക്രിപ്റ്റ് ആപ്ലിക്കേഷനുകളും ഒപ്പം ലളിതമായ ആപ്ലിക്കേഷനുകൾപ്രത്യേക AJAX കോളുകൾ ഉപയോഗിച്ച്), അവർ നിങ്ങളുടെ വഴി റെയിൽസ് ബാക്കെൻഡുമായി ആശയവിനിമയം നടത്തും സ്വന്തം API, HTML-ന് പകരം JSON അല്ലെങ്കിൽ XML എങ്ങനെ സെർവ് ചെയ്യാമെന്ന് നിങ്ങളുടെ കൺട്രോളറുകളോട് പറയുന്ന ഒരു അധിക വരിയോ രണ്ടോ കോഡ് മാത്രമാണിത്.

ഈ ട്യൂട്ടോറിയലിൽ നിങ്ങളുടെ സ്വന്തം API എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് നിങ്ങൾ പഠിക്കും. തുടർന്നുള്ള പാഠങ്ങളിൽ മറ്റ് ആപ്ലിക്കേഷനുകളുടെ API- കളുമായി എങ്ങനെ സംവദിക്കാമെന്ന് ഞങ്ങൾ ചർച്ച ചെയ്യും. പാഠങ്ങൾ ഈ വിഷയത്തെക്കുറിച്ച് പഠിക്കുന്നതിനുള്ള ഒരു നല്ല സ്പ്രിംഗ്ബോർഡായിരിക്കണം, എന്നാൽ എല്ലാ കേസുകളും പൂർണ്ണമായും ഉൾക്കൊള്ളാൻ സാധ്യതയില്ല. API-കൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിൻ്റെ വലിയൊരു ഭാഗം അവരുടെ ഡോക്യുമെൻ്റേഷൻ എങ്ങനെ വായിക്കാമെന്നും നിങ്ങളിൽ നിന്ന് അവർക്ക് എന്താണ് വേണ്ടതെന്ന് കണ്ടെത്താമെന്നും അറിയുക എന്നതാണ്.

പരിഗണിക്കേണ്ട പോയിൻ്റുകൾ

ചോദ്യങ്ങൾ അവലോകനം ചെയ്ത് നിങ്ങൾക്ക് ഉത്തരങ്ങൾ അറിയാമോ എന്ന് നോക്കുക. ചുമതല പൂർത്തിയാക്കിയ ശേഷം വീണ്ടും സ്വയം പരീക്ഷിക്കുക.

  • നിങ്ങൾ ഒരു HTTP അഭ്യർത്ഥന അയയ്‌ക്കുമ്പോൾ ഏത് തരത്തിലുള്ള ഫയലാണ് പ്രതികരണമായി നിങ്ങൾ പ്രതീക്ഷിക്കുന്നതെന്ന് റെയിൽസ് എങ്ങനെ മനസ്സിലാക്കുന്നു.
  • #പ്രതികരണ_രീതിയുടെ ഉദ്ദേശ്യം എന്താണ്?
  • ആ ഒബ്‌ജക്‌റ്റിൽ ഉൾപ്പെടുത്താൻ നിങ്ങൾ ആഗ്രഹിക്കാത്ത ആട്രിബ്യൂട്ടുകൾ വ്യക്തമാക്കുമ്പോൾ ഒരു ഉപയോക്തൃ ഒബ്‌ജക്റ്റ് എങ്ങനെ തിരികെ നൽകും (അതായത്, നിങ്ങൾക്ക് User.first തിരികെ നൽകാനാവില്ല)?
  • #to_json രീതിയുടെ പിന്നിലെ 2 ഘട്ടങ്ങൾക്ക് പേര് നൽകുക.
  • ഒരു കൺട്രോളർ പ്രവർത്തനത്തോട് ഒരു പിശക് സന്ദേശം മാത്രം റെൻഡർ ചെയ്യാൻ നിങ്ങൾ എങ്ങനെയാണ് പറയുന്നത്?
  • നിങ്ങളുടെ സ്വന്തം പിശക് സന്ദേശം എങ്ങനെ സൃഷ്ടിക്കാം?
  • നിങ്ങളുടെ API-യിലേക്ക് പ്രോഗ്രാമാറ്റിക് കണക്ഷനുകൾ അനുവദിക്കണമെങ്കിൽ എന്തുകൊണ്ട് നിങ്ങൾക്ക് സെഷൻ അടിസ്ഥാനമാക്കിയുള്ള കൺട്രോളർ പ്രാമാണീകരണ രീതികൾ ഉപയോഗിക്കാൻ കഴിയില്ല?
  • എന്താണ് "സർവീസ് ഓറിയൻ്റഡ് ആർക്കിടെക്ചർ"?

API അടിസ്ഥാനങ്ങൾ

നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷൻ യഥാർത്ഥത്തിൽ ഇതിനകം തന്നെ ഒരു API ആണ്, എന്നിരുന്നാലും നിങ്ങൾ അതിനെ ഒരു API ആയി കണക്കാക്കില്ല. നിങ്ങളുടെ ഉപയോക്താക്കൾ സമാരംഭിക്കുന്ന വെബ് ബ്രൗസറും ഒരു പ്രോഗ്രാമാണ്, അതിനാൽ ഉപയോക്താവ് തുറക്കുമ്പോൾ അത് യഥാർത്ഥത്തിൽ നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷനിലേക്ക് ഒരു API അഭ്യർത്ഥന നടത്തുന്നു. പുതിയ പേജ്. HTML ടെംപ്ലേറ്റുകൾ റെൻഡർ ചെയ്യുന്നത് വളരെ സാധാരണമായ ഒരു ജോലിയായതിനാൽ ഞങ്ങൾ ഈ രീതിയിൽ ചിന്തിച്ചിരുന്നു സെർവർ പ്രോഗ്രാമുകൾപോലെ സ്റ്റാൻഡേർഡ് തരംഉത്തരം നൽകുക, മറ്റെല്ലാം അസാധാരണമായ ഒന്നായി ഞങ്ങൾ കണക്കാക്കുന്നു.

എന്നിരുന്നാലും, ബ്രൗസർ ഉപയോഗിക്കുന്നതിൻ്റെ എല്ലാ തലവേദനകളിലൂടെയും കടന്നുപോകേണ്ട ആവശ്യമില്ലാത്ത ഒരു അഭ്യർത്ഥന നടത്താൻ നിങ്ങൾ പലപ്പോഴും ആഗ്രഹിക്കുന്നു. പേജ് ഘടനയെ (HTML) നിങ്ങൾ ശ്രദ്ധിക്കണമെന്നില്ല, എന്നാൽ പകരം നിങ്ങൾക്ക് ക്ലീൻ ഡാറ്റ വേണം. നിങ്ങൾക്ക് എല്ലാ ഉപയോക്താക്കളുടെയും ഒരു ലിസ്റ്റ് ലഭിക്കണമെന്ന് പറയാം. നിങ്ങൾക്ക് http://yourapplication.com/users പോലെയുള്ള എന്തെങ്കിലും അഭ്യർത്ഥിക്കാം, അത് തീർച്ചയായും #index പ്രവർത്തനത്തെ ട്രിഗർ ചെയ്യുകയും ആപ്പിൻ്റെ എല്ലാ ഉപയോക്താക്കളുടെയും ഒരു ലിസ്റ്റ് റെൻഡർ ചെയ്യുകയും ചെയ്യും.

എന്നാലും എന്തിനാ ഇതിനൊക്കെ വിഷമം അനാവശ്യ വിവരങ്ങൾ, നിങ്ങൾ ആഗ്രഹിക്കുന്നത് ഉപയോക്താക്കളുടെ ഒരു ലിസ്റ്റ് ലഭിക്കാനാണോ? ഏറ്റവും ലളിതമായ ഓപ്ഷൻഅതേ URL-ലേക്ക് ഒരു അഭ്യർത്ഥന അയയ്ക്കും, പകരം ഒരു JSON അല്ലെങ്കിൽ XML പ്രതികരണം പ്രതീക്ഷിക്കുന്നു. നിങ്ങളുടെ റെയിൽസ് കൺട്രോളർ ശരിയായി കോൺഫിഗർ ചെയ്യുകയാണെങ്കിൽ, എല്ലാ ഉപയോക്താക്കളെയും ഉൾക്കൊള്ളുന്ന ഒരു ലളിതമായ JSON അറേ ഒബ്‌ജക്റ്റ് നിങ്ങൾക്ക് തിരികെ ലഭിക്കും. അത്ഭുതം!

നിങ്ങൾ ഒരു ബാഹ്യ API-യുമായി ആശയവിനിമയം നടത്തുമ്പോഴും ഇതേ തത്ത്വം ബാധകമാണ്. ട്വിറ്ററിൽ നിന്ന് ഒരു ഉപയോക്താവിൻ്റെ സമീപകാല ട്വീറ്റുകൾ നിങ്ങൾക്ക് ലഭിക്കണമെന്ന് പറയാം. ട്വിറ്ററിൻ്റെ API-യുമായി എങ്ങനെ ഇടപഴകണം (അതായത്, സ്വയം പ്രാമാണീകരിക്കുക), അഭ്യർത്ഥന അയയ്‌ക്കുകയും തിരികെ നൽകുന്ന "ട്വീറ്റുകളുടെ" സെറ്റ് പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നത് എങ്ങനെയെന്ന് നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷനോട് പറയുക മാത്രമാണ് നിങ്ങൾ ചെയ്യേണ്ടത്.

ഒരു API സൃഷ്ടിക്കുന്നു

ഫ്രണ്ട്എൻഡ് വെബ് പേജുകൾക്കായി നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷനെ ഒരു ശുദ്ധമായ ബാക്കെൻഡ് API ആക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം, അല്ലെങ്കിൽ ഫ്രണ്ട്എൻഡ് അഭ്യർത്ഥിക്കുമ്പോൾ JSON എങ്ങനെ അയയ്‌ക്കാമെന്ന് അറിയാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം. പ്രാമാണീകരണ ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ച് പൂർണ്ണമായ RESTful API-കൾ എങ്ങനെ സൃഷ്‌ടിക്കാമെന്ന് ഈ വിഭാഗം ഉൾക്കൊള്ളുന്നില്ല. നിങ്ങളുടെ ആപ്ലിക്കേഷനെ ഒരു API ആയി പരിഗണിക്കുന്നതിനുള്ള സുഗമമായ ആമുഖമാണിത്.

അടിസ്ഥാനകാര്യങ്ങൾ

നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷൻ HTML-ന് പകരം JSON തിരികെ നൽകണമെങ്കിൽ, അത് ചെയ്യാൻ നിങ്ങളുടെ കൺട്രോളറോട് പറയേണ്ടതുണ്ട്. അതേ കൺട്രോളർ പ്രവർത്തനത്തിന് മടങ്ങാൻ കഴിയും എന്നതാണ് വലിയ കാര്യം വിവിധ തരംനിങ്ങളുടെ ഉപയോക്താവ് ബ്രൗസറിൽ നിന്ന് ഒരു പതിവ് അഭ്യർത്ഥന നടത്തുന്നുണ്ടോ അല്ലെങ്കിൽ കമാൻഡ് ലൈൻ വഴി API ആക്സസ് ചെയ്യുന്നുണ്ടോ എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു. അഭ്യർത്ഥിച്ച ഫയലിൻ്റെ വിപുലീകരണത്തെ അടിസ്ഥാനമാക്കി ഏത് തരത്തിലുള്ള അഭ്യർത്ഥനയാണ് നൽകിയതെന്ന് ഇത് നിർണ്ണയിക്കുന്നു, ഉദാഹരണത്തിന്, example.xml അല്ലെങ്കിൽ example.json.

സെർവർ ലോഗ് പരിശോധിച്ചുകൊണ്ട് നിങ്ങൾ പ്രതീക്ഷിക്കുന്ന ഫയൽ തരത്തെക്കുറിച്ച് റെയിൽസ് എന്താണ് ചിന്തിക്കുന്നതെന്ന് നിങ്ങൾക്ക് പരിശോധിക്കാം:

2013-12-02 15:21:08 -0800-ന് 127.0.0.1-ന് "/പോസ്റ്റുകൾ/പുതിയത്" ആരംഭിക്കുക

ഏത് URL ആണ് ആവശ്യപ്പെട്ടതെന്ന് ആദ്യ വരി നിങ്ങളോട് പറയുന്നു, രണ്ടാമത്തേത് അത് എവിടെയാണ് അയച്ചതെന്നും റെയിൽസ് അത് എങ്ങനെ പ്രോസസ്സ് ചെയ്യുന്നുവെന്നും പറയുന്നു. നിങ്ങൾ .json വിപുലീകരണം ഉപയോഗിക്കുകയാണെങ്കിൽ അത് ഇതുപോലെ കാണപ്പെടും:

2013-12-04 12:02:01 -0800-ന് 127.0.0.1-ന് "/posts.json" GET ആരംഭിച്ചു, JSON ആയി PostsController#index പ്രോസസ്സ് ചെയ്യുന്നു

നിങ്ങൾ ഓടുന്നുണ്ടെങ്കിൽ ടെസ്റ്റ് ആപ്ലിക്കേഷൻ, വ്യത്യസ്ത URL-കൾ അഭ്യർത്ഥിക്കാൻ ശ്രമിക്കുക. നിങ്ങളുടെ കൺട്രോളറിന് അവ കൈകാര്യം ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഒരു പിശക് ലഭിച്ചേക്കാം, എന്നാൽ നിങ്ങളുടെ അഭ്യർത്ഥനകൾ എന്താണെന്ന് റെയിൽസിന് ഇപ്പോഴും കാണാൻ കഴിയും.

JSON അല്ലെങ്കിൽ XML റെൻഡർ ചെയ്യുന്നു

അഭ്യർത്ഥനകളോട് പ്രതികരിക്കണമെന്ന് നിങ്ങൾ തീരുമാനിക്കുമ്പോൾ JSON ഉപയോഗിക്കുന്നുഅല്ലെങ്കിൽ XML, HTML-ന് പകരം JSON അല്ലെങ്കിൽ XML റെൻഡർ ചെയ്യാൻ നിങ്ങളുടെ കൺട്രോളറോട് പറയേണ്ടതുണ്ട്. ഇതിനുള്ള ഒരു മാർഗ്ഗം #പ്രതികരണ_ടു രീതി ഉപയോഗിക്കുക എന്നതാണ്:

ക്ലാസ് യൂസർ കൺട്രോളർ< ApplicationController def index @users = User.all respond_to do |format| format.html # index.html.erb format.xml { render xml: @users } format.json { render json: @users } end end end

IN ഈ സാഹചര്യത്തിൽ, #respond_to ബ്ലോക്കിലേക്ക് ഒരു ഫോർമാറ്റ് ഒബ്‌ജക്റ്റ് കൈമാറുന്നു, അതിലേക്ക് നിങ്ങൾക്ക് അനുബന്ധ റെൻഡർ കോൾ അറ്റാച്ചുചെയ്യാനാകും. നിങ്ങൾ ഒന്നും ചെയ്യുന്നില്ലെങ്കിൽ, സ്റ്റാൻഡേർഡ് റെയിൽസ് ടെംപ്ലേറ്റ് ഉപയോഗിച്ച് html റെൻഡർ ചെയ്യപ്പെടും (ഈ ഉദാഹരണത്തിൽ app/views/index.html.erb).

വൈവിധ്യമാർന്ന ഫോർമാറ്റുകൾ എങ്ങനെ റെൻഡർ ചെയ്യാമെന്ന് മനസിലാക്കാൻ #റെൻഡർ ഫംഗ്ഷൻ മികച്ചതാണ്. നിങ്ങൾ അത് കീ:json കൈമാറുമ്പോൾ, അത് മൂല്യത്തിൽ #to_json എന്ന് വിളിക്കും ഈ ഉദാഹരണത്തിൽ@ഉപയോക്താക്കൾക്ക്. ഇത് നിങ്ങളുടെ റൂബി ഒബ്‌ജക്‌റ്റിനെ(കൾ) JSON സ്‌ട്രിംഗുകളായി പരിവർത്തനം ചെയ്യും, അത് അഭ്യർത്ഥിക്കുന്ന ആപ്ലിക്കേഷനിലേക്ക് കൈമാറും.

ഇതുവഴി നിങ്ങളുടെ API ലഭിക്കും. തീർച്ചയായും, നിങ്ങൾക്ക് ചില ഫാൻസി കാര്യങ്ങൾ ചെയ്യാൻ താൽപ്പര്യമുണ്ടെങ്കിൽ ഒരു API സൃഷ്ടിക്കുന്നത് കുറച്ചുകൂടി സങ്കീർണ്ണമായേക്കാം, എന്നാൽ ഇതെല്ലാം അടിസ്ഥാനകാര്യങ്ങളിൽ ഉറച്ചുനിൽക്കുന്നു.

റിട്ടേൺഡ് ആട്രിബ്യൂട്ടുകൾ വ്യക്തമാക്കുന്നു

ഉപയോക്തൃ ഒബ്‌ജക്‌റ്റിനൊപ്പം ഉപയോക്താവിൻ്റെ ഇമെയിൽ വിലാസം തിരികെ നൽകുന്നില്ലെന്ന് ഉറപ്പാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഈ സാഹചര്യത്തിൽ, #to_json രീതി പരിഷ്‌ക്കരിച്ച് തിരികെ നൽകുന്ന ആട്രിബ്യൂട്ടുകൾ മാറ്റാൻ നിങ്ങൾ ആഗ്രഹിക്കും.

മുമ്പ്, നിങ്ങളുടെ പതിപ്പ് ഉപയോഗിച്ച് നിങ്ങൾ #to_json രീതി അസാധുവാക്കുമായിരുന്നു, എന്നാൽ ഇപ്പോൾ നിങ്ങൾക്ക് ആവശ്യമില്ല - വാസ്തവത്തിൽ, നിങ്ങൾ പകരം #as_json രീതി അസാധുവാക്കും. #to_json രീതിയിലാണ് #as_json രീതി ഉപയോഗിക്കുന്നത്, അതിനാൽ അതിൻ്റെ പരിഷ്‌ക്കരണം #to_json ൻ്റെ ഫലത്തെ പരോക്ഷമായി മാറ്റുന്നു, പക്ഷേ ഒരു പ്രത്യേക രീതിയിൽ.

#to_json 2 കാര്യങ്ങൾ ചെയ്യുന്നു: ഇത് #json ആയി പ്രവർത്തിക്കുകയും JSON-ലേക്ക് റെൻഡർ ചെയ്യുന്ന ആട്രിബ്യൂട്ടുകളുടെ ഒരു ഹാഷ് നേടുകയും ചെയ്യുന്നു. ഇത് ActiveSupport::json.encode ഉപയോഗിച്ച് JSON-ലേക്ക് റെൻഡർ ചെയ്യുന്നു. അതിനാൽ #as_json പരിഷ്‌ക്കരിക്കുന്നതിലൂടെ നിങ്ങൾ യഥാർത്ഥത്തിൽ മാറ്റാൻ ആഗ്രഹിക്കുന്ന #to_json രീതിയുടെ ഭാഗത്തെക്കുറിച്ച് കൂടുതൽ വ്യക്തമാക്കുകയാണ്.

ഞങ്ങളുടെ കാര്യത്തിൽ, ഞങ്ങൾക്ക് ആവശ്യമായ ആട്രിബ്യൂട്ടുകൾ മാത്രം നൽകുന്നതിന് ഞങ്ങളുടെ മോഡലിൽ #as_json പരിഷ്‌ക്കരിച്ചുകൊണ്ടാണ് ഞങ്ങൾ ഇത് ചെയ്യുന്നത്:

# app/models/user.rb ക്ലാസ് ഉപയോക്താവ്< ActiveRecord::Base # Вариант 1: Полное переопределение метода #as_json def as_json(options={}) { :name =>self.name ) # ഇമെയിൽ എൻഡ് ഫീൽഡ് ഉൾപ്പെടുത്തരുത് # ഓപ്ഷൻ 2: ഉപയോഗിക്കുക സ്റ്റാൻഡേർഡ് രീതി#as_json def as_json(options=()) super(only: [:name]) end end

തുടർന്ന്, ഞങ്ങളുടെ കൺട്രോളർ JSON പതിവുപോലെ റെൻഡർ ചെയ്യേണ്ടതുണ്ട് (ചുവടെയുള്ള ഉദാഹരണത്തിൽ, ഒരു HTML അഭ്യർത്ഥന അയച്ചോ ഇല്ലയോ എന്നത് പരിഗണിക്കാതെ തന്നെ, JSON എല്ലായ്പ്പോഴും തിരികെ നൽകും):

# app/controllers/users_controller.rb ക്ലാസ് UsersController< ApplicationController def index render json: User.all end end

നിങ്ങൾ #render ഉപയോഗിക്കുമ്പോൾ #to_json-ലേക്ക് സ്വയം വിളിക്കേണ്ടതില്ല എന്നത് ശ്രദ്ധിക്കുക - ഇത് നിങ്ങൾക്കായി ചെയ്യും.

ചിലപ്പോൾ Heroku ആവശ്യപ്പെടാം അധിക ഘട്ടങ്ങൾപിശകുകളുള്ള നിങ്ങളുടെ പേജുകൾ ശരിയായി പ്രദർശിപ്പിക്കുന്നതിന്. ഒന്നു നോക്കൂ. നിങ്ങൾ ആദ്യം ആപ്പ്/പബ്ലിക് ഡയറക്‌ടറിയിൽ നിന്ന് സ്റ്റാറ്റിക് പേജുകൾ നീക്കം ചെയ്യേണ്ടി വന്നേക്കാം.

പുറത്ത് നിന്നുള്ള സുരക്ഷ ഉറപ്പാക്കുന്നു

ഉപയോക്താവ് ലോഗിൻ ചെയ്‌തിട്ടുണ്ടെങ്കിൽ മാത്രമേ API-ലേക്ക് ആക്‌സസ് അനുവദിക്കൂ എന്ന് പറയുക. കൺട്രോളറിലെ നിങ്ങളുടെ നിലവിലുള്ള പ്രാമാണീകരണം ഇതിനകം തന്നെ ഈ ജോലി ചെയ്യുന്നു - നിങ്ങൾക്ക് ശരിയായ #before_action സെറ്റ് ഉണ്ടെന്ന് ഉറപ്പാക്കുക (ഉദാ. before_action:require_login). ലോഗിൻ ചെയ്‌തിരിക്കുന്നവർക്കും ലോഗിൻ ചെയ്യാത്ത ഉപയോക്താക്കൾക്കും പേജ് കാണാൻ കഴിയുന്ന പ്രവർത്തനക്ഷമത നിങ്ങൾക്ക് ആവശ്യമായി വന്നേക്കാം, എന്നാൽ ഓരോരുത്തർക്കും വ്യത്യസ്ത ഡാറ്റ കാണണം. ആധികാരികതയില്ലാത്ത ഉപയോക്താക്കൾക്ക് സെൻസിറ്റീവ് ഡാറ്റ ലഭിക്കുന്നതിന് API കോളുകൾ ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല. അതുപോലെ, ചില HTML പേജുകൾ സന്ദർശിക്കാൻ അനധികൃത ഉപയോക്താക്കളെ അനുവദിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല.

ഒരു ബ്രൗസർ അല്ലാത്ത ഒരു ആപ്ലിക്കേഷനിൽ നിന്നുള്ള അഭ്യർത്ഥനകൾ നിങ്ങൾക്ക് കൈകാര്യം ചെയ്യണമെങ്കിൽ (ഉദാഹരണത്തിന്, നിന്ന് കമാൻഡ് ലൈൻ), പ്രാമാണീകരണത്തിനായി നിങ്ങൾക്ക് ബ്രൗസർ കുക്കികളെ ആശ്രയിക്കാൻ കഴിയില്ല. അതുകൊണ്ടാണ് പ്രാമാണീകരണ പ്രക്രിയയുടെ ഭാഗമായി മിക്ക API-കളും നേറ്റീവ് ടോക്കണുകൾ ഉപയോഗിക്കുന്നത്. അടുത്ത പാഠത്തിൽ ടോക്കണുകളെ കുറിച്ച് കുറച്ചുകൂടി സംസാരിക്കാം.

അടുത്ത ഘട്ടങ്ങൾ

HTML മാത്രമല്ല, മറ്റേതെങ്കിലും ഫോർമാറ്റും റെൻഡർ ചെയ്യാൻ നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷൻ ഉപയോഗിക്കാനുള്ള കഴിവുകൾ നിങ്ങൾക്കുണ്ട്. നിങ്ങൾക്ക് കൂടുതൽ മുന്നോട്ട് പോയി നിങ്ങളുടെ പ്ലാറ്റ്ഫോം ഉപയോഗിച്ച് കാര്യങ്ങൾ നിർമ്മിക്കാൻ മറ്റ് ഡെവലപ്പർമാരെ അനുവദിക്കണമെങ്കിൽ (ഉദാഹരണത്തിന്, ഒരു ഉപയോക്താവായി ആധികാരികമാക്കുന്നതിന് പകരം അവർക്ക് പ്രോഗ്രാമാറ്റിക് അഭ്യർത്ഥനകൾ നടത്താം), നിങ്ങളുടെ API സിസ്റ്റം കൂടുതൽ ശക്തമാക്കേണ്ടതുണ്ട്. ഞങ്ങൾ ഇവിടെ എല്ലാം കവർ ചെയ്യുന്നില്ല, എന്നാൽ ഇനിപ്പറയുന്നവ പരിശോധിക്കുക:

  • ഒരു കളിപ്പാട്ട ആപ്ലിക്കേഷനിൽ നിന്ന് വ്യാവസായിക API നിലവാരത്തിലേക്ക് മാറുന്നതിനുള്ള മികച്ച സമീപനങ്ങളിൽ പലതും ബിൽഡിംഗ് Awesome Rails APIs എന്ന ലേഖനം വിവരിക്കുന്നു.

സേവന-അധിഷ്ഠിത വാസ്തുവിദ്യ

പരിചയപ്പെടുത്താൻ സമയമായി വാസ്തുവിദ്യാ സമീപനം"സർവീസ് ഓറിയൻ്റഡ് ആർക്കിടെക്ചർ" (SOA) എന്ന പേരിൽ. പേയ്‌മെൻ്റ് സംവിധാനം, ഉപയോക്തൃ രജിസ്‌ട്രേഷൻ, ശുപാർശ മൊഡ്യൂൾ മുതലായവ പോലുള്ള നിരവധി സേവനങ്ങൾ നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ ഉണ്ടായിരിക്കും എന്നതാണ് അടിസ്ഥാന ആശയം. ഒരു പ്രധാന ആപ്ലിക്കേഷനിൽ എല്ലാം നിർമ്മിക്കുന്നതിനുപകരം, ആന്തരിക API-കൾ ഉപയോഗിച്ച് പരസ്പരം ആശയവിനിമയം നടത്തുന്ന പൂർണ്ണമായും സ്വതന്ത്രമായ ഭാഗങ്ങളായി നിങ്ങൾ സബ്സിസ്റ്റങ്ങളെ തകർക്കുന്നു.

പല കാരണങ്ങളാൽ ഇത് നല്ലതാണ്. നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ ഓരോ ഭാഗവും മറ്റ് ഭാഗങ്ങൾ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നത് ശ്രദ്ധിക്കാത്തതിനാലും അവരുടെ API വഴി ഡാറ്റ അഭ്യർത്ഥിക്കാൻ മാത്രമേ അറിയൂ എന്നതിനാലും നിങ്ങൾക്ക് സേവന കോഡിൽ കാര്യമായ മാറ്റങ്ങൾ വരുത്താൻ കഴിയും, കൂടാതെ ബാക്കിയുള്ള ആപ്ലിക്കേഷനും മുമ്പത്തെപ്പോലെ പ്രവർത്തിക്കും. നിങ്ങൾക്ക് ഒരു സേവനം മറ്റൊന്നുമായി പൂർണ്ണമായും മാറ്റിസ്ഥാപിക്കാനാകും, അതേ API രീതികൾ ഉപയോഗിച്ച് ആശയവിനിമയം നടത്തുന്നിടത്തോളം, അത് വളരെ സുഗമമായി നടക്കും. നിങ്ങളുടേത് എഴുതുന്നതിനുപകരം നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ ഭാഗമായി (ഉദാ: പേയ്‌മെൻ്റ് സംവിധാനങ്ങൾ) നിങ്ങൾക്ക് ബാഹ്യ API-കൾ ഉപയോഗിക്കാം. ഒരു റെയിൽസ് ആപ്ലിക്കേഷനുമായി ആശയവിനിമയം നടത്തുന്ന ഒരു പൈത്തൺ ആപ്ലിക്കേഷനുമായി ആശയവിനിമയം നടത്തുന്ന ഒരു PHP ആപ്ലിക്കേഷൻ നിങ്ങൾക്ക് സൃഷ്ടിക്കാൻ കഴിയും, ഒരു API ഉപയോഗിച്ച് അവർ പരസ്പരം ആശയവിനിമയം നടത്തുന്നതിനാൽ എല്ലാം പ്രവർത്തിക്കും.

ഒരു പൊതു നിയമം എന്ന നിലയിൽ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ ഓരോ ഭാഗവും കഴിയുന്നത്ര സ്വതന്ത്രമാക്കാൻ ശ്രമിക്കുക - നല്ല ആശയം. SOA എന്ന ആശയം, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ മറ്റ് ഭാഗങ്ങളിലേക്ക് ഏതൊക്കെ രീതികൾ തുറന്നുകാട്ടാൻ ആഗ്രഹിക്കുന്നു എന്നതിനെക്കുറിച്ച് ചിന്തിക്കാൻ നിങ്ങളെ പ്രേരിപ്പിക്കുന്നു, അത് നിങ്ങളുടെ കോഡ് മികച്ചതാക്കും. കൂടാതെ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ്റെ ഓരോ പ്രധാന ഘടകവും സ്വതന്ത്രമാണെന്ന് അനുമാനിക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് കൂടുതൽ എളുപ്പത്തിൽ പ്രശ്നങ്ങൾ ഒറ്റപ്പെടുത്താനും കൂടുതൽ അർത്ഥവത്തായ രീതിയിൽ പിശകുകൾ കൈകാര്യം ചെയ്യാനും കഴിയും.

ഒരു മുഴുവൻ ആപ്ലിക്കേഷനും സേവന-അധിഷ്ഠിത ആർക്കിടെക്ചർ ഉപയോഗിക്കുന്നത് ഒരു ഭീമാകാരവും സങ്കീർണ്ണവുമായ റൂബി സ്ക്രിപ്റ്റിനെ വൃത്തിയുള്ള ക്ലാസുകളിലേക്കും രീതികളിലേക്കും വിഭജിക്കുന്നത് പോലെയാണ്, വലിയ തോതിൽ മാത്രം.

സേവന-അധിഷ്ഠിത ആർക്കിടെക്ചറിലേക്കുള്ള പരിവർത്തനത്തിൻ്റെ ഏറ്റവും പ്രശസ്തമായ കേസുകളിൽ ഒന്നാണ് Amazon.com. 2002-ൽ ഒരു ദിവസം, എല്ലാ വർക്ക്‌ഗ്രൂപ്പുകളും SOA-യിലേക്ക് മാറുകയോ അല്ലെങ്കിൽ പുറത്താക്കപ്പെടുകയോ ചെയ്യണമെന്ന് ജെഫ് ബെസോസ് വ്യക്തമായി പ്രസ്താവിച്ചു. കുപ്രസിദ്ധമായ ബ്ലോഗ് പോസ്റ്റ്ഗൂഗിൾ ജീവനക്കാരൻ, ആന്തരിക ആവശ്യങ്ങൾക്കായി ഉദ്ദേശിച്ചെങ്കിലും ആകസ്മികമായി പരസ്യമാക്കി, SOA ഉപയോഗിക്കുന്ന ആമസോണിൻ്റെ ശക്തിയെക്കുറിച്ച് സംസാരിച്ചു. ഇതൊരു മികച്ച വായനയാണ്, അതിനാൽ ഇത് പരിശോധിക്കുന്നത് ഉറപ്പാക്കുക, എന്നാൽ ബെസോസിൻ്റെ കത്തിൻ്റെ പ്രധാന പോയിൻ്റുകൾ പോസ്റ്റിൽ നിന്നുള്ള ഇനിപ്പറയുന്ന ഉദ്ധരണികളിൽ സംഗ്രഹിച്ചിരിക്കുന്നു:

1) എല്ലാ ടീമുകളും ഇപ്പോൾ സേവന ഇൻ്റർഫേസുകളിലൂടെ അവരുടെ ഡാറ്റയും പ്രവർത്തനവും നൽകുന്നു.

2) ഈ ഇൻ്റർഫേസുകളിലൂടെ ടീമുകൾ പരസ്പരം ആശയവിനിമയം നടത്തണം.

3) മറ്റ് രൂപങ്ങൾ ഇൻ്റർപ്രോസസ് കമ്മ്യൂണിക്കേഷൻനിരോധിച്ചിരിക്കുന്നു: നേരിട്ടുള്ള ലിങ്കുകളില്ല, മറ്റൊരു കമാൻഡിൻ്റെ ഡാറ്റ നേരിട്ട് വായിക്കുന്നില്ല, മോഡലുകളില്ല ഓർമ്മ പങ്കിട്ടു, പിൻവാതിലുകളോ മറ്റോ ഇല്ല. നെറ്റ്‌വർക്കിലൂടെയുള്ള സേവന ഇൻ്റർഫേസ് ആക്‌സസ് ചെയ്യുക എന്നതാണ് അനുവദനീയമായ ആശയവിനിമയ മാർഗ്ഗം.

4) അവർ ഏത് സാങ്കേതികവിദ്യയാണ് ഉപയോഗിക്കുന്നത് എന്നത് പ്രശ്നമല്ല. HTTP, Corba, Pubsub, Proprietary Protocols - വ്യത്യാസമില്ല. ബെസോസ് കാര്യമാക്കുന്നില്ല.

5) എല്ലാ സേവന ഇൻ്റർഫേസുകളും, ഒഴിവാക്കലില്ലാതെ, തുടക്കത്തിൽ ബാഹ്യമായി നിയന്ത്രിക്കാനുള്ള കഴിവ് ഉപയോഗിച്ച് രൂപകൽപ്പന ചെയ്തിരിക്കണം. അതായത്, കമ്പനിക്ക് പുറത്തുള്ള ഡെവലപ്പർമാർക്ക് ഇൻ്റർഫേസ് നൽകാൻ ടീം ആസൂത്രണം ചെയ്യുകയും രൂപകൽപ്പന ചെയ്യുകയും വേണം. ഒഴിവാക്കലില്ല.

6) ഈ ആവശ്യകതകൾ അവഗണിക്കുന്നവരെ പുറത്താക്കും.

SOA ഗുരുതരമായ ബിസിനസ്സാണ്. തീർച്ചയായും, ഇത് ഉപയോഗിക്കുമ്പോൾ ധാരാളം പ്രശ്നങ്ങൾ ഉയർന്നുവരുന്നു - ആമസോണിൻ്റെ "പാഠങ്ങൾ" എന്നതിനെക്കുറിച്ചുള്ള ഈ പോസ്റ്റ് പരിശോധിക്കുക - എന്നാൽ ഇതിന് അവിശ്വസനീയമായ നേട്ടങ്ങളുണ്ട്.

നിങ്ങൾ സ്വയം കളിപ്പാട്ട ആപ്പുകൾ നിർമ്മിക്കുമ്പോൾ SOA-യെ കുറിച്ച് നിങ്ങൾ അധികം വിഷമിക്കില്ല, പക്ഷേ നിങ്ങൾ ഒരു ഐടി കമ്പനിയിൽ ജോലി ചെയ്യാൻ തുടങ്ങുമ്പോൾ തീർച്ചയായും ഇത് ഒരു പ്രശ്നമാണ്, അതിനാൽ ഇത് സ്വയം പരിചയപ്പെടുത്തുന്നത് ഒരു നല്ല പരിശീലനമാണ്.

നിങ്ങളുടെ ലക്ഷ്യം

  1. JSON, XML റെൻഡറിംഗിനെക്കുറിച്ച് അറിയാൻ റെയിൽസ് കൺട്രോളർ ഗൈഡിൻ്റെ സെക്ഷൻ 7 വായിക്കുക.
  2. അവ കാണേണ്ട ആവശ്യമില്ല (കാരണം അവർ ഞങ്ങൾ ഇപ്പോൾ തയ്യാറാക്കിയിരിക്കുന്നതിനേക്കാൾ കുറച്ചുകൂടി മുന്നോട്ട് പോകുന്നു), എന്നാൽ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, താഴെയുള്ള റെയിൽസ്‌കാസ്റ്റുകൾ നോക്കുക അധിക വിഭവങ്ങൾ API-യുടെ നേട്ടങ്ങളെക്കുറിച്ച് കൂടുതലറിയാൻ പാഠത്തിൻ്റെ ചുവടെ.

ഉപസംഹാരം

Javascript കോഴ്‌സ് സമയത്ത് ഒരു API എന്ന നിലയിൽ നിങ്ങളുടെ ആപ്ലിക്കേഷനുമായി ഞങ്ങൾ കൂടുതൽ അടുത്ത് പ്രവർത്തിക്കും. ഈ കോഴ്‌സിൽ, മികച്ചതാക്കാൻ AJAX കോളുകൾ ഉപയോഗിക്കുന്ന നിരവധി ഫുൾ-സ്റ്റാക്ക് ആപ്ലിക്കേഷനുകൾ നിങ്ങൾ സൃഷ്ടിക്കും ഉപയോക്തൃ ഇൻ്റർഫേസ്, ഇതിൽ യഥാർത്ഥത്തിൽ XML റെൻഡറിംഗ് ഉൾപ്പെടുന്നു അല്ലെങ്കിൽ JSON ഡാറ്റഒരു പൂർണ്ണ HTML പേജിന് പകരം. ഡാറ്റാബേസിൽ നിന്ന് ആവശ്യമായ എല്ലാ ഡാറ്റയും ലഭ്യമാക്കുന്നതിന് നിങ്ങളുടെ റെയിൽസ് ആപ്ലിക്കേഷൻ നൽകുന്ന API-യെ ആശ്രയിക്കുന്ന നിരവധി ഒറ്റ പേജ് Javascript ആപ്ലിക്കേഷനുകൾ നിങ്ങൾ സൃഷ്ടിക്കും, എന്നാൽ ക്ലയൻ്റ് സൈഡിൽ (ബ്രൗസറിൽ) പ്രവർത്തിപ്പിക്കുക.

ഒരു API മനസിലാക്കാനുള്ള ഏറ്റവും നല്ല മാർഗം അത് സൃഷ്ടിക്കുകയും സംവദിക്കുകയും ചെയ്യുക എന്നതാണ്, അതിൽ ഞങ്ങൾ ശ്രദ്ധ കേന്ദ്രീകരിക്കും.

നിങ്ങൾ "API" എന്ന പദം കണ്ടിരിക്കാം. ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, വെബ് ബ്രൗസർ, ആപ്ലിക്കേഷൻ അപ്‌ഡേറ്റുകൾ എന്നിവ ഡവലപ്പർമാർക്കായി പതിവായി പുതിയ API-കൾ പ്രഖ്യാപിക്കുന്നു. എന്നാൽ എന്താണ് ഒരു API?

ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്

API എന്ന പദം ഒരു ചുരുക്കെഴുത്താണ്, ഇത് ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസിനെ സൂചിപ്പിക്കുന്നു.

ഒരു എപിഐ ഒരു റെസ്റ്റോറൻ്റിലെ മെനു പോലെയാണ്. മെനുവിൽ നിങ്ങൾക്ക് ഓർഡർ ചെയ്യാൻ കഴിയുന്ന വിഭവങ്ങളുടെ ഒരു ലിസ്റ്റും ഓരോ വിഭവത്തിൻ്റെയും വിവരണവും അടങ്ങിയിരിക്കുന്നു. നിങ്ങൾക്ക് ആവശ്യമുള്ള മെനു ഇനങ്ങൾ വ്യക്തമാക്കുമ്പോൾ, റെസ്റ്റോറൻ്റ് അടുക്കള ആ ജോലി നിർവഹിക്കുകയും നിങ്ങൾക്ക് പൂർത്തിയായ വിഭവങ്ങൾ നൽകുകയും ചെയ്യുന്നു. റസ്റ്റോറൻ്റ് എങ്ങനെയാണ് ഈ ഭക്ഷണം തയ്യാറാക്കുന്നതെന്ന് നിങ്ങൾക്ക് കൃത്യമായി അറിയില്ല, നിങ്ങൾക്ക് ആവശ്യമില്ല.

അതുപോലെ, ഡെവലപ്പർമാർക്ക് ഉപയോഗിക്കാനാകുന്ന നിരവധി പ്രവർത്തനങ്ങളും അവർ ചെയ്യുന്ന കാര്യങ്ങളുടെ വിവരണവും API നൽകുന്നു. ഉദാഹരണത്തിന്, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം എങ്ങനെ സൃഷ്ടിക്കപ്പെടുന്നുവെന്നും സേവ് അസ് ഡയലോഗ് ബോക്സ് പ്രദർശിപ്പിക്കുന്നത് എങ്ങനെയെന്നും ഡവലപ്പർക്ക് അറിയേണ്ടതില്ല. ആപ്ലിക്കേഷനിൽ ഉപയോഗിക്കുന്നതിന് ഇത് ലഭ്യമാണെന്ന് അവർക്ക് അറിയേണ്ടതുണ്ട്.

ഡെവലപ്പർമാർക്ക് ഫലങ്ങൾ ലഭിക്കുന്നതിന് അവരുടെ സ്വന്തം API ഡാറ്റ നൽകേണ്ടി വന്നേക്കാം എന്നതിനാൽ ഇത് ഒരു തികഞ്ഞ രൂപകമല്ല, അതിനാൽ ഇത് അടുക്കളയിൽ പ്രവർത്തിക്കാൻ നിങ്ങളുടെ സ്വന്തം ചേരുവകളിൽ ചിലത് നൽകാൻ കഴിയുന്ന ഒരു ഫാൻസി റസ്റ്റോറൻ്റ് പോലെയായിരിക്കാം.

പ്ലാറ്റ്‌ഫോം നടപ്പിലാക്കുന്നത് പ്രയോജനപ്പെടുത്തി സമയം ലാഭിക്കാൻ ഡെവലപ്പർമാരെ API-കൾ അനുവദിക്കുന്നു പ്രധാനപ്പെട്ട ജോലി. ഇത് വികസിപ്പിക്കാനുള്ള കോഡിൻ്റെ അളവ് കുറയ്ക്കാനും ഒരേ പ്ലാറ്റ്‌ഫോമിലെ ആപ്ലിക്കേഷനുകൾക്കിടയിൽ സ്ഥിരത സൃഷ്ടിക്കാനും സഹായിക്കുന്നു. API-കൾക്ക് ഹാർഡ്‌വെയർ, സോഫ്റ്റ്‌വെയർ ഉറവിടങ്ങളിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കാനാകും.

API-കൾ ഡെവലപ്പർമാർക്ക് ജീവിതം എളുപ്പമാക്കുന്നു

നിങ്ങൾ ഒരു ഐഫോൺ ആപ്ലിക്കേഷൻ വികസിപ്പിക്കാൻ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ആപ്പിൾ ഐഒഎസ്നൽകുന്നു ഒരു വലിയ സംഖ്യഇത് നിങ്ങൾക്ക് എളുപ്പമാക്കുന്നതിന് മറ്റേതൊരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തെയും പോലെയാണ് API-കൾ.

ഉദാഹരണത്തിന്, ഒന്നോ അതിലധികമോ വെബ് പേജുകൾ പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു വെബ് ബ്രൗസർ ഉൾച്ചേർക്കണമെങ്കിൽ, നിങ്ങളുടെ ആപ്ലിക്കേഷനായി ആദ്യം മുതൽ നിങ്ങളുടെ സ്വന്തം വെബ് ബ്രൗസർ പ്രോഗ്രാം ചെയ്യേണ്ടതില്ല. നിങ്ങൾ
നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ ഒരു WebKit (Safari) വെബ് ബ്രൗസർ ഉൾച്ചേർക്കുന്നതിന് നിങ്ങൾക്ക് WKWebView API ഉപയോഗിക്കാം.

നിങ്ങൾക്ക് ഫോട്ടോകളോ വീഡിയോകളോ എടുക്കണമെങ്കിൽ ഐഫോൺ ക്യാമറകൾനിങ്ങളുടെ സ്വന്തം ക്യാമറ ഇൻ്റർഫേസ് എഴുതേണ്ടതില്ല. നിങ്ങളുടെ ആപ്പിലേക്ക് iPhone ക്യാമറ ഉൾച്ചേർക്കുന്നതിന് നിങ്ങൾക്ക് Camera API ഉപയോഗിക്കാം. API നിലവിലില്ലെങ്കിൽ, ആപ്പ് ഡെവലപ്പർമാർ സ്വന്തം ക്യാമറ സോഫ്‌റ്റ്‌വെയർ സൃഷ്‌ടിക്കുകയും ഇൻപുട്ടുകൾ വ്യാഖ്യാനിക്കുകയും ചെയ്യേണ്ടിവരും ഹാർഡ്വെയർക്യാമറകൾ. എന്നാൽ ഓപ്പറേറ്റിംഗ് റൂമിൻ്റെ ഡെവലപ്പർമാർ ആപ്പിൾ സിസ്റ്റങ്ങൾഇത്രയും കഠിനാധ്വാനം ചെയ്‌തതിനാൽ ഡവലപ്പർമാർക്ക് ക്യാമറ ഉൾച്ചേർക്കാൻ ക്യാമറ API ഉപയോഗിക്കാനും തുടർന്ന് അവരുടെ അപേക്ഷ എഴുതുന്നത് തുടരാനും കഴിയും. ആപ്പിൾ ക്യാമറ API മെച്ചപ്പെടുത്തുമ്പോൾ, അത് ഉപയോഗിക്കുന്ന എല്ലാ ആപ്പുകളും ആ മെച്ചപ്പെടുത്തൽ സ്വയമേവ പ്രയോജനപ്പെടുത്തും.

ഇത് എല്ലാ പ്ലാറ്റ്ഫോമുകൾക്കും ബാധകമാണ്. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് വിൻഡോസിൽ ഒരു ഡയലോഗ് ബോക്സ് സൃഷ്ടിക്കണോ? ഇതിനായി ഒരു API ഉണ്ട്. Android-ൽ ഫിംഗർപ്രിൻ്റ് പ്രാമാണീകരണത്തെ പിന്തുണയ്‌ക്കണോ? ഇതിനായി ഒരു API ഉണ്ട്, അതിനാൽ എല്ലാ Android നിർമ്മാതാക്കളിൽ നിന്നും ഓരോ ഫിംഗർപ്രിൻ്റ് സെൻസറും നിങ്ങൾ പരീക്ഷിക്കേണ്ടതില്ല. ഡവലപ്പർമാർക്ക് വീൽ വീണ്ടും വീണ്ടും കണ്ടുപിടിക്കേണ്ടതില്ല.

API-കൾ ഉറവിടങ്ങളിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കുന്നു

ഹാർഡ്‌വെയർ ഉപകരണങ്ങളിലേക്കും ഫംഗ്‌ഷനുകളിലേക്കുമുള്ള ആക്‌സസ് നിയന്ത്രിക്കാനും API-കൾ ഉപയോഗിക്കുന്നു സോഫ്റ്റ്വെയർ, അപ്ലിക്കേഷന് ഉപയോഗിക്കാനുള്ള അനുമതി ഇല്ലായിരിക്കാം. അതുകൊണ്ടാണ് എപിഐകൾ പലപ്പോഴും സുരക്ഷയിൽ വലിയ പങ്ക് വഹിക്കുന്നത്.

ഉദാഹരണത്തിന്, നിങ്ങൾ എപ്പോഴെങ്കിലും ഒരു വെബ്‌സൈറ്റ് സന്ദർശിക്കുകയും ബ്രൗസറിൽ നിങ്ങളുടെ കൃത്യമായ ലൊക്കേഷൻ ആവശ്യപ്പെടുന്ന ഒരു സന്ദേശം ബ്രൗസറിൽ കാണുകയും ചെയ്‌തിട്ടുണ്ടെങ്കിൽ, ആ വെബ്‌സൈറ്റ് നിങ്ങളുടെ വെബ് ബ്രൗസറിൽ ജിയോലൊക്കേഷൻ API ഉപയോഗിക്കാൻ ശ്രമിക്കുന്നു. വെബ് ഡെവലപ്പർമാർക്ക് നിങ്ങളുടെ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യുന്നത് എളുപ്പമാക്കുന്നതിന് വെബ് ബ്രൗസറുകൾ API-കൾ നൽകുന്നു - അവർക്ക് "നിങ്ങൾ എവിടെയാണ്?" എന്ന് ചോദിക്കാൻ കഴിയും, കൂടാതെ നിങ്ങളുടെ GPS അല്ലെങ്കിൽ സമീപത്ത് ആക്‌സസ് ചെയ്യാൻ ബ്രൗസർ കഠിനാധ്വാനം ചെയ്യും. Wi-Fi നെറ്റ്‌വർക്കുകൾനിങ്ങളുടെ ഭൗതിക സ്ഥാനം കണ്ടെത്താൻ.

എന്നിരുന്നാലും, ബ്രൗസറുകൾ ഈ വിവരങ്ങൾ API-കൾ വഴി തുറന്നുകാട്ടുന്നു, കാരണം ഇതിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കാനാകും. ഒരു വെബ്‌സൈറ്റ് നിങ്ങളുടെ കൃത്യമായ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാൻ ആഗ്രഹിക്കുമ്പോൾ, ഒരേ ഒരു വഴിഅത് നേടുക ലൊക്കേഷൻ API. കൂടാതെ, ഒരു വെബ്‌സൈറ്റ് അത് ഉപയോഗിക്കാൻ ശ്രമിക്കുമ്പോൾ, നിങ്ങൾക്ക്-ഉപയോക്താവിന്-അഭ്യർത്ഥന അനുവദിക്കാനോ നിരസിക്കാനോ കഴിയും. പോലുള്ള ഹാർഡ്‌വെയർ ഉറവിടങ്ങളിലേക്കുള്ള ആക്‌സസ് ജിപിഎസ് സെൻസർ, ഒരു API വഴി മാത്രമേ സാധ്യമാകൂ, അതിനാൽ ബ്രൗസറിന് ഹാർഡ്‌വെയറിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കാനും ആപ്ലിക്കേഷൻ കഴിവുകൾ പരിമിതപ്പെടുത്താനും കഴിയും.

ആധുനിക മൊബൈൽ ഫോണുകളിലും ഇതേ തത്ത്വം ഉപയോഗിക്കുന്നു. ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങൾ, iOS, Android എന്നിവ പോലെ, എവിടെ മൊബൈൽ ആപ്ലിക്കേഷനുകൾ API-യിലേക്കുള്ള ആക്‌സസ്സ് നിയന്ത്രിക്കുന്നതിലൂടെ നടപ്പിലാക്കാൻ കഴിയുന്ന അനുമതികൾ ഉണ്ട്. ഉദാഹരണത്തിന്, ഒരു ഡെവലപ്പർ ക്യാമറ API വഴി ക്യാമറ ആക്‌സസ് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് അനുമതി അഭ്യർത്ഥന നിരസിക്കാം, ആപ്പിന് നിങ്ങളുടെ ഉപകരണത്തിൻ്റെ ക്യാമറയിലേക്ക് ആക്‌സസ് ഉണ്ടാകില്ല.

Windows, Mac, Linux പോലുള്ള അനുമതികൾ ഉപയോഗിക്കുന്ന ഫയൽ സിസ്റ്റങ്ങൾക്ക് API നടപ്പിലാക്കുന്ന അനുമതികൾ ഉണ്ട്. ഫയൽ സിസ്റ്റം. സാധാരണ ആപ്ലിക്കേഷൻഅസംസ്കൃത ഭൗതികത്തിലേക്ക് നേരിട്ട് പ്രവേശനമില്ല ഹാർഡ് ഡ്രൈവ്. പകരം, ആപ്ലിക്കേഷൻ API വഴി ഫയലുകൾ ആക്സസ് ചെയ്യണം.

സേവനങ്ങൾ തമ്മിലുള്ള ആശയവിനിമയത്തിന് API-കൾ ഉപയോഗിക്കുന്നു

മറ്റ് കാരണങ്ങളാൽ API-കളും ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾ എപ്പോഴെങ്കിലും ഒരു വെബ്‌സൈറ്റിൽ ഉൾച്ചേർത്ത ഒരു Google മാപ്‌സ് ഒബ്‌ജക്റ്റ് കണ്ടിട്ടുണ്ടെങ്കിൽ, ആ വെബ്‌സൈറ്റ് ആ മാപ്പ് എംബഡ് ചെയ്യാൻ Google Maps API ഉപയോഗിക്കുന്നു. വെബ് ഡെവലപ്പർമാർക്കായി Google ഇതുപോലുള്ള API-കൾ നൽകുന്നു, അവർക്ക് ശേഖരിക്കാൻ API-കൾ ഉപയോഗിക്കാം സങ്കീർണ്ണമായ വസ്തുക്കൾനിങ്ങളുടെ വെബ്സൈറ്റിൽ തന്നെ. അത്തരം API-കൾ നിലവിലില്ലെങ്കിൽ, ഡവലപ്പർമാർ സ്വന്തമായി സൃഷ്ടിക്കേണ്ടി വന്നേക്കാം സ്വന്തം കാർഡുകൾകൂടാതെ ഒരു ചെറിയ സൗകര്യത്തിനായി നിങ്ങളുടെ സ്വന്തം കാർഡ് വിശദാംശങ്ങൾ നൽകുക സംവേദനാത്മക മാപ്പ്വെബ്സൈറ്റിൽ.

അതൊരു API ആയതിനാൽ Google-ന് ആക്‌സസ് നിയന്ത്രിക്കാനാകും ഗൂഗിൾ ഭൂപടംമൂന്നാം കക്ഷി വെബ്‌സൈറ്റുകളിൽ, വെബ്‌സൈറ്റ് കാണിക്കുന്ന ഫ്രെയിം ക്രമരഹിതമായി നടപ്പിലാക്കാൻ ശ്രമിക്കുന്നതിനുപകരം അവർ അത് സ്ഥിരമായ രീതിയിൽ ഉപയോഗിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുന്നു ഗൂഗിൾ ഭൂപടം, ഉദാഹരണത്തിന്.

വിവിധ ഓൺലൈൻ സേവനങ്ങൾക്ക് ഇത് ബാധകമാണ്. വാചകത്തിൻ്റെ വിവർത്തനം അഭ്യർത്ഥിക്കുന്നതിന് API-കൾ ഉണ്ട് Google ട്രാൻസലേറ്റ്അല്ലെങ്കിൽ പ്രദർശിപ്പിക്കുക ഫേസ്ബുക്ക് അഭിപ്രായങ്ങൾഅല്ലെങ്കിൽ വെബ്സൈറ്റിൽ ട്വിറ്ററിൽ നിന്നുള്ള ട്വീറ്റുകൾ.

നിങ്ങളുടെ ലോഗിൻ ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുന്നത് പോലെയുള്ള മറ്റൊരു സേവനത്തിലൂടെ ഒരു സൈറ്റിലേക്ക് ലോഗിൻ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന നിരവധി API-കൾ OAuth സ്റ്റാൻഡേർഡ് നിർവ്വചിക്കുന്നു. ഫേസ്ബുക്ക് പോസ്റ്റുകൾ, പുതിയ വെബ്‌സൈറ്റ് സൃഷ്‌ടിക്കാതെ തന്നെ ഒരു പുതിയ വെബ്‌സൈറ്റിലേക്ക് ലോഗിൻ ചെയ്യാൻ Google അല്ലെങ്കിൽ Twitter അക്കൗണ്ട്ഈ സൈറ്റിനായി മാത്രം ഉപയോക്താവ്. ഒരു സേവനവുമായി ഡവലപ്പർമാർ എങ്ങനെ ഇടപഴകുന്നുവെന്നും ഡവലപ്പർമാർക്ക് ലഭിക്കാൻ പ്രതീക്ഷിക്കുന്ന ഔട്ട്‌പുട്ടിൻ്റെ തരവും നിർവചിക്കുന്ന സ്റ്റാൻഡേർഡ് കരാറുകളാണ് APIകൾ.

നിങ്ങൾ ഈ ലേഖനം വായിച്ചിട്ടുണ്ടെങ്കിൽ, ഒരു API എന്താണെന്നതിനെക്കുറിച്ച് നിങ്ങൾക്ക് മികച്ച ആശയം ലഭിക്കും. ആത്യന്തികമായി, നിങ്ങൾ ഒരു ഡെവലപ്പർ അല്ലാത്തപക്ഷം ഒരു API എന്താണെന്ന് അറിയേണ്ടതില്ല. എന്നാൽ നിങ്ങൾ അത് കണ്ടാൽ സോഫ്റ്റ്വെയർ പ്ലാറ്റ്ഫോംഅല്ലെങ്കിൽ സേവനം ചേർത്തു പുതിയ API-കൾവ്യത്യസ്‌ത ഹാർഡ്‌വെയർ അല്ലെങ്കിൽ സേവനങ്ങൾക്കായി, ഡവലപ്പർമാർക്ക് അത്തരം ഫീച്ചറുകൾ ഉപയോഗിക്കുന്നത് എളുപ്പമായിരിക്കണം.

അവരുടെ സഹപ്രവർത്തകരുടെ ജോലി എളുപ്പമാക്കുന്നതിനും എല്ലാ വിൻഡോസ് പ്രോഗ്രാമുകൾക്കും സാർവത്രിക ഇൻ്റർഫേസ് നൽകുന്നതിനും, മൈക്രോസോഫ്റ്റ് പ്രോഗ്രാമർമാർ ഒരു API - "അപ്ലിക്കേഷൻ പ്രോഗ്രാമിംഗ് ഇൻ്റർഫേസ്" പോലെയുള്ള ഒരു സംഗതി സൃഷ്ടിച്ചു.

പ്രോഗ്രാമുകൾക്ക് മിക്കപ്പോഴും ഉപയോഗിക്കാനാകുന്ന ഫംഗ്ഷനുകളുടെയും നടപടിക്രമങ്ങളുടെയും ഒരു കൂട്ടമാണിത്: ഒരു ഡയറക്ടറി ട്രീ പ്രദർശിപ്പിക്കുക, ഫയലുകൾക്കായി തിരയുക, ഒരു സ്റ്റാൻഡേർഡ് വിൻഡോ കാണിക്കുക, ബട്ടണുകൾ ചെറുതാക്കുക, വലുതാക്കുക എന്നിവയും മറ്റു പലതും. തൽഫലമായി, വിൻഡോസിനായി ഒരു പ്രോഗ്രാം സൃഷ്ടിക്കുന്ന ഒരു ഡവലപ്പർക്ക് പ്രോഗ്രാം വിൻഡോ, ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കുന്നതിനുള്ള വിൻഡോ, മറ്റ് സമാന പ്രാഥമിക പ്രവർത്തനങ്ങൾ എന്നിവ പ്രദർശിപ്പിക്കുന്നതിന് പ്രത്യേക സബ്റൂട്ടീനുകൾ വികസിപ്പിക്കേണ്ടതില്ല - അയാൾക്ക് കേവലം kernel32.dll അല്ലെങ്കിൽ user32.dll എന്ന് വിളിക്കാം. ഫംഗ്ഷനുകളും നടപടിക്രമങ്ങളും API അടങ്ങുന്ന ലൈബ്രറികളിൽ നിന്ന്, അവന് ആവശ്യമായ ഫംഗ്ഷൻ, അവൾ അവനുവേണ്ടി എല്ലാം സ്വയം ചെയ്യും. അത്തരം നിരവധി പ്രവർത്തനങ്ങളും നടപടിക്രമങ്ങളും ഉണ്ട് - ഏകദേശം 600.

ഓപ്പറേഷൻ റൂമിൽ MS-DOS സിസ്റ്റംഒരു API പോലെ ഒന്നുമില്ല - ഈ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനായി ഒരു പ്രോഗ്രാം എഴുതാൻ ഏറ്റെടുത്തയാൾ സ്ക്രീനിൽ ഒരു ചിത്രം പ്രദർശിപ്പിക്കുന്നതിനും ഉപയോക്താവിൽ നിന്ന് ഡാറ്റ സ്വീകരിക്കുന്നതിനും ഫയൽ സിസ്റ്റത്തിലൂടെ സഞ്ചരിക്കുന്നതിനും ഡ്രോയിംഗ് ചെയ്യുന്നതിനുമുള്ള രീതികൾ ചിന്തിക്കാനും നടപ്പിലാക്കാനും ബാധ്യസ്ഥനായിരുന്നു. ഗ്രാഫിക്സ്, അത്തരമൊരു സാധ്യത ആവശ്യമെങ്കിൽ 2. ഇത് ഒരു ഉപയോക്തൃ-സൗഹൃദ ഇൻ്റർഫേസ് ഉപയോഗിച്ച് പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്ന പ്രക്രിയയെ വളരെ അധ്വാനം-ഇൻ്റൻസീവ് പ്രക്രിയയാക്കി; പ്രോഗ്രാമിനായി സ്വീകാര്യമായ ഗ്രാഫിക്കൽ ഇൻ്റർഫേസ് സൃഷ്ടിക്കുന്നതിന് ചെലവഴിക്കുന്ന സമയവും പരിശ്രമവും പ്രോഗ്രാമിൻ്റെ സ്വന്തം അൽഗോരിതം നടപ്പിലാക്കുന്നതിനുള്ള ചെലവിനേക്കാൾ കൂടുതലാണ്. . “കൺസോൾ” എന്ന് വിളിക്കപ്പെടുന്ന ആപ്ലിക്കേഷനുകൾ വളരെ സാധാരണമായത് വെറുതെയല്ല, അതായത്, ഒരു ഇൻ്റർഫേസ് ഇല്ലാതെ കമാൻഡ് ലൈനിൽ നിന്ന് മാത്രം പ്രവർത്തിക്കുന്ന പ്രോഗ്രാമുകൾ - ഡാറ്റ അതേ കമാൻഡ് ലൈനിൽ നൽകിയതോ അതിൽ വ്യക്തമാക്കിയ ഫയലിൽ നിന്ന് നിർമ്മിച്ചതോ ആണ്, കൂടാതെ ഫലങ്ങൾ ലളിതമായ ടെക്സ്റ്റ് മോഡിൽ ഔട്ട്പുട്ട് ചെയ്തു.

ഓപ്പറേഷൻ റൂമിൻ്റെ വരവോടെ വിൻഡോസ് സിസ്റ്റങ്ങൾപ്രോഗ്രാമിൻ്റെ രൂപവും ഇൻപുട്ട്, ഔട്ട്പുട്ട് വിവരങ്ങൾക്കുള്ള സൗകര്യപ്രദമായ വഴികളും വികസിപ്പിക്കുന്നതിന് പ്രോഗ്രാമർമാരുടെ ബാക്ക്ബ്രേക്കിംഗ് ജോലികൾ വളരെയധികം സുഗമമാക്കി - API ഫംഗ്ഷനുകൾ ഇതിനകം Windows 3.0-ൽ ഉപയോഗിച്ചിരുന്നു. ഇപ്പോൾ ഒരു പ്രോഗ്രാമർ, ഉദാഹരണത്തിന്, ഒരു ടെക്സ്റ്റ് ഇൻപുട്ട് വിൻഡോ അല്ലെങ്കിൽ ഒരു സ്ക്രോൾ ബാർ സൃഷ്ടിക്കാൻ അവൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, മറ്റേതൊരു ഫംഗ്ഷനെപ്പോലെയും അയാൾക്ക് ആവശ്യമായ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് അത്തരമൊരു വിൻഡോ പ്രദർശിപ്പിക്കുന്നതിന് ഫംഗ്ഷനിലേക്ക് ഒരു കോൾ എഴുതുക മാത്രമാണ് ചെയ്യേണ്ടത്. അവൻ തൻ്റെ പ്രോഗ്രാം എഴുതിയ ഭാഷ, അത്തരത്തിലുള്ള ഒരു വിൻഡോ അല്ലെങ്കിൽ ബാർ വീണ്ടും വരയ്ക്കുന്ന ഒരു പ്രോഗ്രാം സൃഷ്‌ടിക്കുന്നതിന് വലിയ അളവിലുള്ള കോഡ് അവതരിപ്പിക്കരുത് (അത്തരത്തിലുള്ള വസ്തുക്കൾ ഉപയോഗിക്കുന്ന അടുത്ത പ്രോഗ്രാം വികസിപ്പിക്കുമ്പോൾ, അവൻ വികസിപ്പിക്കേണ്ടതുണ്ട്. അത്തരം കോഡ് വീണ്ടും അല്ലെങ്കിൽ പഴയത് ഭാഗികമായി ഉപയോഗിക്കാൻ ശ്രമിക്കുക, ഈ പുതിയ പ്രോഗ്രാമിൻ്റെ ആവശ്യങ്ങൾക്ക് അനുയോജ്യമാക്കുക). അതിനാൽ, API-കളുടെ ആവിർഭാവം പ്രോഗ്രാമിംഗ് സാങ്കേതികവിദ്യയിൽ ഒരു വിപ്ലവകരമായ മുന്നേറ്റം ഉണ്ടാക്കി, ഇത് സൃഷ്ടിക്കാൻ അനുവദിച്ചു ആവശ്യമായ പ്രോഗ്രാമുകൾവിവരങ്ങളുടെ ഇൻപുട്ടിനും ഔട്ട്‌പുട്ടിനുമുള്ള പ്രോഗ്രാമിംഗ് സ്റ്റാൻഡേർഡ് ഇൻ്റർഫേസ് ഒബ്‌ജക്‌റ്റുകൾ പോലുള്ള പതിവ് വിശദാംശങ്ങളെക്കുറിച്ച് ആകുലപ്പെടാതെ, പരിചിതമായ സൗകര്യപ്രദമായ ഇൻ്റർഫേസ് വളരെ വേഗത്തിൽ.

IN ദൃശ്യ ഭാഷആപ്ലിക്കേഷനുകൾക്കായുള്ള അടിസ്ഥാനം (VBA) ഇൻ്റർപ്രെറ്റർ പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ പല API ഫംഗ്ഷനുകളും നടപടിക്രമങ്ങളും സ്വയം വിളിക്കപ്പെടുന്നു, അതിനാൽ ടെക്സ്റ്റ് ഇൻപുട്ടും ഔട്ട്പുട്ട് വിൻഡോകളും പ്രദർശിപ്പിക്കാനും സ്ക്രീനിൽ ജ്യാമിതീയ രൂപങ്ങൾ വരയ്ക്കാനും മറ്റ് ലളിതമായ പ്രവർത്തനങ്ങൾ ചെയ്യാനും അവ ഉപയോഗിക്കേണ്ടതില്ല. - VBA അവരെ ആവശ്യാനുസരണം വിളിക്കുന്നു, അതിനെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു പ്രോഗ്രാമിന് ഈ ഭാഷയുടെ അനുബന്ധ പ്രവർത്തനങ്ങൾ മാത്രമേ ഉപയോഗിക്കാവൂ. എന്നിരുന്നാലും, ചിലപ്പോൾ ചില പ്രവർത്തനങ്ങളുടെ ആവശ്യകതയുണ്ട്, അതിനായി അന്തർനിർമ്മിതത്തിൽ അനലോഗ് ഒന്നുമില്ല VBA പ്രവർത്തനങ്ങൾ, അല്ലെങ്കിൽ അവർ യുക്തിരഹിതമായി അല്ലെങ്കിൽ വളരെ സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ഡയറക്‌ടറി ട്രീയുടെ ഇമേജ് ഉള്ള ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കൽ വിൻഡോ (ചിത്രം 5.1) അല്ലെങ്കിൽ ഒരു ഫയൽ തിരയൽ പ്രോഗ്രാം (VBA ഫംഗ്‌ഷനുകളിലെ അനലോഗ് - "Application.FileSearch" ഒബ്‌ജക്റ്റ് - വലിയ എണ്ണം ഫയലുകളിൽ വളരെ സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നു). അത്തരം സന്ദർഭങ്ങളിൽ, API ഫംഗ്ഷനുകൾ വിളിക്കാനുള്ള കഴിവ് VBA നൽകുന്നു.

നിർഭാഗ്യവശാൽ, VBA-യിലെ API ഫംഗ്‌ഷനുകളുടെ ഉപയോഗം സഹായത്തിൽ രേഖപ്പെടുത്തിയിട്ടില്ല, അതിനാൽ അവ എങ്ങനെ ഉപയോഗിക്കണമെന്ന് അറിയാൻ നിങ്ങൾ ഒന്നുകിൽ ഓഫീസ് പ്രോഗ്രാമിംഗിലെ പുസ്‌തകങ്ങൾക്കോ ​​ഓൺലൈൻ ഉറവിടങ്ങൾക്കോ ​​വേണ്ടി നോക്കണം, അല്ലെങ്കിൽ API ഫംഗ്‌ഷനുകളിലേക്കുള്ള കോളുകൾ അടങ്ങുന്ന പ്രോഗ്രാമുകളുടെ കോഡ് വിശകലനം ചെയ്യണം.

മിക്ക കേസുകളിലും, ഓഫീസിനായി പ്രോഗ്രാമിംഗ് ചെയ്യുമ്പോൾ, നിങ്ങൾക്ക് ഇത് കൂടാതെ ചെയ്യാൻ കഴിയും API ഉപയോഗം, എന്നാൽ ചിലപ്പോൾ ഒരു API ഫംഗ്‌ഷൻ വിളിക്കുന്നത് നേടാൻ കഴിയും ആഗ്രഹിച്ച ഫലം. നിങ്ങൾ മൗസ് ഉപയോഗിച്ച് ഒരു പാനലിലെ ഒരു ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുമ്പോൾ വ്യത്യസ്ത മാക്രോകൾ വിളിക്കപ്പെടുന്നുവെന്ന് ഉറപ്പാക്കണമെന്ന് നമുക്ക് പറയാം. പദ ഉപകരണങ്ങൾനിങ്ങൾ ഈ ബട്ടൺ അമർത്തുകയാണെങ്കിൽ ഒപ്പം ഷിഫ്റ്റ് കീകൾഅല്ലെങ്കിൽ നിയന്ത്രണം. ഇത് ചെയ്യുന്ന കോഡിൻ്റെ ഒരു സ്‌നിപ്പെറ്റ് ഇതാ:

GetAsyncKeyState Lib "user32.dll" (ByVal kState) പൂർണ്ണസംഖ്യയായി പ്രഖ്യാപിക്കുക

GetAsyncKeyState(vbKeyShift അല്ലെങ്കിൽ vbKeyControl)

GetAsyncKeyState(vbKeyShift) എങ്കിൽ

മാക്രോ 1-നെ വിളിക്കുക: ഉപഭോക്താവിൽ നിന്ന് പുറത്തുകടക്കുക

അല്ലെങ്കിൽ GetAsyncKeyState(vbKeyControl) പിന്നെ

macro2-നെ വിളിക്കുക: ഉപഭോക്താവിൽ നിന്ന് പുറത്തുകടക്കുക

ഒരു VBA പ്രോഗ്രാമിൽ ഉപയോഗിക്കുന്നതിന് ഒരു API ഫംഗ്‌ഷൻ "റിസർവ്" ചെയ്യുന്നത് പോലെയാണ് ആദ്യ വരി. ലൈബ്രറിയിൽ നിന്ന് GetAsyncKeyState ഫംഗ്‌ഷനെ വിളിക്കുന്നത് കാണാം (മറ്റ് പ്രോഗ്രാമുകളുടെ ഉപയോഗത്തിനായി മാത്രം ഉദ്ദേശിച്ചിട്ടുള്ള പ്രോഗ്രാമുകൾ അടങ്ങിയ ഒരു ഫയൽ) user32.dll, കൂടാതെ കീ നമ്പർ ഈ ഫംഗ്‌ഷനിലേക്ക് കൈമാറുകയും അത് ഒരു പൂർണ്ണസംഖ്യ നൽകുകയും ചെയ്യുന്നു (അതായത് 0, എങ്കിൽ അനുബന്ധ നമ്പറുള്ള കീ അമർത്തിയില്ല, -32767 അല്ലെങ്കിൽ 1 അമർത്തിയാൽ). നോൺ-വിബിഎ ലൈബ്രറികളിൽ നിന്ന് വിളിക്കപ്പെടുന്ന ഏതൊരു പ്രവർത്തനവും നടപടിക്രമവും ഡിക്ലേർ കമാൻഡ് ഉപയോഗിച്ച് റിസർവ് ചെയ്തിരിക്കണം.

കമാൻഡിലെ vbKeyShift വാക്യം Shift കീ കോഡിന് പകരമാണ് (അതിൻ്റെ മൂല്യം 16 ആണ്), കൂടാതെ vbKeyControl, മനസ്സിലാക്കാൻ എളുപ്പമുള്ളത് പോലെ, കൺട്രോൾ കീ കോഡിന് പകരമാണ്. "എങ്കിൽ... പിന്നെ" പ്രസ്താവനകളുടെ ഘടന വ്യക്തമാണെന്ന് തോന്നുന്നു 3, ഇല്ലെങ്കിൽ, VBA സഹായം നോക്കുക. മാക്രോ നാമത്തിന് മുമ്പുള്ള കോൾ കമാൻഡ്, നിങ്ങൾ ഓർക്കുന്നതുപോലെ, അത് സമാരംഭിക്കുക എന്നാണ് അർത്ഥമാക്കുന്നത്.

API 4 ന് സമർപ്പിച്ചിരിക്കുന്ന റഷ്യൻ സൈറ്റുകൾ ഇൻ്റർനെറ്റിൽ ഉണ്ട്. ഈ ഫീച്ചർ സെറ്റിനെക്കുറിച്ച് കൂടുതലറിയാൻ അവരെ സന്ദർശിക്കുക.