மேம்பட்ட வலைதள தொடர்பு மற்றும் APIs

Apr 14, 2025

பிரிவு 4 க்கு வரவேற்கிறோம்! நாம் நிலையான மற்றும் JavaScript-ரெண்டர் செய்யப்பட்ட உள்ளடக்கத்தை ஸ்கிராப் செய்வது, பல-பக்க தளங்களை வழிநிர்ணயம் செய்வது ஆகியவற்றை உள்ளடக்கியிருக்கிறோம். இப்போது, நாம் நேரடி API தொடர்பு, படிவ சமர்பணை, அங்கீகாரம், மற்றும் GraphQL போன்ற சிறப்பு APIs உடன் தொடர்புடைய மிகவும் சிக்கலான சூழ்நிலைகளில் நுழைகிறோம். இந்த நுட்பங்கள் நவீன வலை பயன்பாடுகளைச் சமாளிப்பதற்கு முக்கியமானவை.

1. API-இயக்கப்படும் வலைதளங்கள் (அத்தியாயம் 7)

பல நவீன வலைதளங்கள் தங்கள் அனைத்து தரவையும் ஆரம்ப HTML உடன் ஏற்றுவதில்லை. மாறாக, அவை பக்கம் ஏற்றப்பட்ட பிறகு பின்தள APIs லிருந்து தரவை பெற JavaScript ஐப் பயன்படுத்துகின்றன (பெரும்பாலும் fetch அல்லது XMLHttpRequest ஐப் பயன்படுத்தி). இந்த தளங்களை திறமையாக ஸ்கிராப் செய்வது பெரும்பாலும் UI ஐ தவிர்த்து இந்த APIs உடன் நேரடியாக தொடர்புகொள்வதைக் குறிக்கிறது.

முக்கிய கருத்துக்கள்:

  • API கோரிக்கைகளைக் கண்டறிதல்: தரவைத் திருப்பும் கோரிக்கைகளை (பெரும்பாலும் XHR/Fetch) கண்டறிய உங்கள் உலாவியின் developer tools (Network tab) ஐப் பயன்படுத்தவும், பொதுவாக JSON வடிவத்தில்.
  • APIs ஐ நேரடியாக ஸ்கிராப் செய்தல்: ஒருமுறை நீங்கள் API endpoint ஐக் கண்டறிந்தவுடன், axios அல்லது Node.js இல் உள்ள உள்ளமைக்கப்பட்ட fetch போன்ற நூலகங்களைப் பயன்படுத்தி அதற்கு நேரடியாக கோரிக்கைகள் செய்யலாம். இது பொதுவாக உலாவி தன்னியக்கத்தை விட வேகமாகவும் நம்பகமானதாகவும் இருக்கும்.
  • பேஜினேஷன் மற்றும் பாராமீட்டர்களை கையாளுதல்: APIs பெரும்பாலும் பேஜினேஷன் (page, limit), வடிகட்டல், அல்லது வரிசைப்படுத்தலுக்கு வினவல் பாராமீட்டர்களைப் பயன்படுத்துகின்றன. உங்கள் ஸ்கிராப்பிங் ஸ்கிரிப்டில் இவற்றைப் புரிந்துகொள்ள மற்றும் நகலெடுக்க வேண்டும்.

சவால் (அத்தியாயம் 7): நீங்கள் ஒரு இ-காமர்ஸ் தளத்தை ஸ்கிராப் செய்வீர்கள், அங்கு பொருள் பட்டியல்கள் RESTful API லிருந்து இயங்குதளமாக ஏற்றப்படுகின்றன. உங்கள் பணி இந்த API உடன் தொடர்புகொண்டு, பேஜினேஷனை சரியாக கையாண்டு அனைத்து பொருட்களையும் பெறுவதாகும்.

_solved/chapter7/ கோப்பகத்தில் நேரடி API ஸ்கிராப்பிங்கை வெளிக்காட்டும் குறிப்பு தீர்வைக் கண்டுபிடிக்கவும்.

2. படிவங்கள் மற்றும் அங்கீகாரம் (அத்தியாயம் 8)

பெரும்பாலும், மதிப்புமிக்க தரவு உள்நுழைவு திரையின் பின்னால் உள்ளது அல்லது சிக்கலான படிவங்களைச் சமர்பிக்க வேண்டியது தேவை. உதாரணமாக, அத்தியாயம் 8 இல் உள்ள பயண முன்பதிவு தளம் முக்கிய செயல்பாடுகளை அணுகுவதற்கு அங்கீகாரம் தேவைப்படுகிறது. இலக்குகளைத் தேடுவதற்கு (தானியங்கு பூர்த்தி பயன்படுத்தி), பயண தேதிகளைத் தேர்ந்தெடுப்பதற்கு (நாட்காட்டி விட்ஜெட்டுடன் தொடர்புகொள்வது), வடிப்பான்களைப் பயன்படுத்துவது, மற்றும் முடிவுகளைப் பார்ப்பது (உள்நுழைந்த பயனர்களுக்கு மட்டுமே கிடைக்கும் பிரீமியம் பட்டியல்கள் உட்பட), நீங்கள் முதலில் உள்நுழைவு செயல்முறையை தன்னியக்கமாக்க வேண்டும். இதில் படிவங்களைக் கையாளுதல், அமர்வு குக்கீகளை நிர்வகித்தல் (சாத்தியமான காலக்கெடுவு உட்பட, இது மறு அங்கீகாரம் மற்றும் CSRF பாதுகாப்பு தேவைப்படுகிறது), மற்றும் இறுதியில் உண்மையான பயனரைப் போல செயல்கள் செய்ய உலாவியைக் கட்டுப்படுத்துவது அடங்கும்.

முக்கிய கருத்துக்கள்:

  • படிவ சமர்பணைகளை தன்னியக்கமாக்குதல்: Input புலங்களை நிரப்புவது, விकल்பங்களைத் தேர்ந்தெடுப்பது, மற்றும் படிவங்களைச் சமர்பிக்க பொத்தான்களைக் கிளிக் செய்வதற்கு Playwright அல்லது Puppeteer போன்ற கருவிகளைப் பயன்படுத்துங்கள் (உ.மா. உள்நுழைவு படிவங்கள், தேடல் பார்கள், வடிப்பான் கட்டுப்பாடுகள்).
  • அங்கீகாரத்தை நிர்வகித்தல்:
    • குக்கீ-அடிப்படையிலான: ஒருமுறை உள்நுழையுங்கள், மற்றும் உலாவி சூழல் (Playwright/Puppeteer ஆல் நிர்வகிக்கப்படும்) பெரும்பாலும் தொடர்ச்சியான கோரிக்கைகளுக்கு அமர்வு குக்கீகளை தானாகவே கையாள்கிறது.
    • டோக்கன்-அடிப்படையிலான (உ.மா. JWT): உள்நுழையுங்கள், டோக்கனை பிரித்தெடுக்கவும் (பெரும்பாலும் உள்ளக சேமிப்பு அல்லது API பதிலிலிருந்து), மற்றும் தொடர்ச்சியான API கோரிக்கைகளுக்கு அதை தலைப்புகளில் சேர்க்கவும் (உ.மா. Authorization: Bearer <token>)।
  • அமர்வுகளைக் கையாளுதல்: உங்கள் ஸ்கிராப்பரில் வெவ்வேறு பக்கங்கள் அல்லது செயல்கள் முழுவதும் உள்நுழைந்த நிலையைப் பராமரித்தல்.
  • பாதுகாக்கப்பட்ட உள்ளடக்கத்தை அணுகுதல்: ஒருமுறை அங்கீகரிக்கப்பட்டவுடன், உள்நுழைந்த பயனர்களுக்கு மட்டுமே கிடைக்கும் பக்கங்கள் அல்லது தரவைக் கண்டறியலாம் மற்றும் ஸ்கிராப் செய்யலாம்.

சவால் (அத்தியாயம் 8): இந்த அத்தியாயத்தில் பல-படி செயல்முறை அடங்கும்: தளத்தில் உள்நுழைதல், தேடல் பக்கத்திற்கு வழிநிர்ணயம் செய்தல், வடிப்பான்களுடன் சிக்கலான பல-பகுதி படிவத்தை நிரப்புதல், முடிவுகளைப் பிரித்தெடுத்தல் (உள்நுழைந்தபோது மட்டுமே தெரியும் பிரீமியம் உள்ளடக்கம் உட்பட), மற்றும் பயனர் டாஷ்போர்டில் தேடலைச் சேமித்தல் கூட.

3. GraphQL APIs உடன் வேலை செய்தல் (அத்தியாயம் 9)

GraphQL REST APIs க்கு வேகமாக பிரபலமாகும் மாற்றாகும். இது clients களுக்கு குறிப்பிட்ட வினவல் மொழியைப் பயன்படுத்தி அவர்களுக்குத் தேவையான சரியான தரவை கோர அனுமதிக்கிறது.

முக்கிய கருத்துக்கள்:

  • GraphQL Endpoint: பொதுவாக, ஒரு ஒற்றை endpoint உள்ளது (உ.மா. /graphql அல்லது /api/graphql).
  • வினவல் மொழி: நீங்கள் மீட்டெடுக்க விரும்பும் புலங்கள் மற்றும் உறவுகளைக் குறிப்பிட GraphQL வினவல்களைக் கட்டமைக்க வேண்டும். Insomnia அல்லது Postman போன்ற கருவிகள் GraphQL schemas ஐ ஆராய உதவலாம்.
  • Mutations: தரவை மாற்றும் செயல்களுக்கு (உள்நுழைதல் அல்லது தரவைச் சமர்பித்தல் போன்றவை) பயன்படுத்தப்படுகின்றன, REST இல் POST/PUT/DELETE க்கு ஒத்தது.
  • அங்கீகாரம்: பெரும்பாலும் Authorization தலைப்பு அனுப்பும் தேவை உள்ளது, REST APIs க்கு ஒத்தது, பொதுவாக உள்நுழைவு mutation க்குப் பிறகு பெறப்படுகிறது.

சவால் (அத்தியாயம் 9): நீங்கள் GraphQL API ஆல் ஆதரிக்கப்படும் தளத்துடன் தொடர்புகொள்வீர்கள். பணி உள்நுழைவு mutation மூலம் அங்கீகரித்து பின்னர் GraphQL வினவல்களைப் பயன்படுத்தி சவால்கள் மற்றும் பயனர் சுயவிவரங்களைப் பற்றிய குறிப்பிட்ட கட்டமைக்கப்பட்ட தரவைப் பெறுவதாகும்.

இந்த மேம்பட்ட நுட்பங்களில் தேர்ச்சி பெறுவது நீங்கள் திறம்பட ஸ்கிராப் செய்யக்கூடிய வலைதளங்கள் மற்றும் தரவின் வரம்பை கணிசமாக விரிவுபடுத்துகிறது. எப்போதும் பொறுப்புடன் ஸ்கிராப் செய்வதையும் வலைதளங்களின் சேவை விதிமுறைகளை மதிப்பதையும் நினைவில் கொள்ளுங்கள்.

மகிழ்ச்சியான ஸ்கிராப்பிங்!