2022 போஸ்ட்மேன் API கணக்கெடுப்பின்படி, GraphQL மிகவும் பிரபலமான API கட்டமைப்புகளில் ஒன்றாகும். இது REST, webhooks மற்றும் SOAP ஆகியவற்றிற்குப் பிறகு நான்காவது இடத்தைப் பிடித்துள்ளது மற்றும் அதன் புகழ் தொடர்ந்து அதிகரித்து வருகிறது.
GraphQL என்பது 2012 இல் Facebook ஆல் உருவாக்கப்பட்ட APIகளுக்கான வினவல் மொழியாகும். இது பயன்பாடுகளுக்கான விருப்பமான தரவு-பெறும் கருவியாக மாற்றும் தனித்துவமான நன்மைகளைக் கொண்டுள்ளது. இந்த நன்மைகளில் சிலவற்றையும் அவை சிறந்த API மேம்பாட்டிற்கு எவ்வாறு பங்களிக்கின்றன என்பதையும் காண்போம்.
அன்றைய வீடியோவை உருவாக்கவும் உள்ளடக்கத்துடன் தொடர உருட்டவும்
1. GraphQL API மேம்பாட்டை எளிதாக்குகிறது
போலல்லாமல் REST ஒவ்வொரு ஆதாரத்திற்கும் வெவ்வேறு இறுதிப்புள்ளியைப் பயன்படுத்துகிறது , ஒரு GraphQL API ஒன்றை மட்டுமே பயன்படுத்த வேண்டும். இறுதிப்புள்ளிகளின் எண்ணிக்கையை குறைப்பது வளர்ச்சி செயல்முறையை எளிதாக்குகிறது. தரவுத் தொகுப்பைப் பெற பல முனைப்புள்ளிகளுக்கு நீங்கள் அழைப்புகளைச் செய்ய வேண்டியதில்லை என்பதால் இது பெறுவதை எளிதாக்குகிறது.
GraphQL ஒரு எளிய JSON போன்ற தரவு கட்டமைப்பைப் பயன்படுத்துகிறது , JSON உடன் பணிபுரியும் எவரும் விளக்கி பயன்படுத்துவதை எளிதாக்குகிறது. கீழே உள்ள குறியீடு GraphQL கோரிக்கையின் உதாரணத்தைக் காட்டுகிறது. நீங்கள் அழைப்புகளைச் செய்யலாம் மற்றும் உங்கள் கேள்விகளுக்கு சரியான பதில்களைப் பெறலாம்.
{
hero {
name
height
}
}
ஒரு எடுத்துக்காட்டு பதில் இப்படி இருக்கலாம்:
{
"data": {
"hero": {
"name": "Sandra"
"height": "1.5"
}
}
}
2. வலுவான தட்டச்சு பாதுகாப்பை வழங்குகிறது
GraphQL இன் மிகவும் திறமையான அம்சங்களில் ஒன்று அதன் வகை அமைப்பு. API க்கு சமர்ப்பிக்கப்பட்ட வினவல்களின் கட்டமைப்பை வகைகள் சரிபார்க்கின்றன. கோரப்பட்ட தரவு சரியான வடிவத்தில் இருப்பதை இது உறுதி செய்கிறது.
GraphQL ஐப் பயன்படுத்தி, உங்கள் APIகளை வகைகள் மற்றும் புலங்களின்படி ஒழுங்கமைக்கிறீர்கள், REST போன்ற இறுதிப்புள்ளிகள் அல்ல. இந்த அமைப்பு ஒரு இறுதிப் புள்ளியிலிருந்து எந்த வகையான தரவையும் அணுக உங்களை அனுமதிக்கிறது. குறிப்பிட்ட தரவை அணுகவும், தரவு இல்லாதபோது பயனுள்ள பிழைகளை வழங்கவும் பயன்பாடுகளுக்கு வகைகள் உதவுகின்றன.
வகைகளுடன், நீங்கள் கைமுறையாக பாகுபடுத்தும் குறியீட்டை எழுத வேண்டியதில்லை. GraphQL இல் ஒரு வகையை எவ்வாறு வரையறுப்பது என்பதற்கான எடுத்துக்காட்டு இங்கே:
type Character {
name: String
friends: String
homeWorld: Planet
species: Species
}
3. GraphQL வேகமானது
விவாதத்திற்குரியதாக இருந்தாலும், GraphQL இன் செயல்திறன் REST வினவல்களை விட வேகமாக இருப்பதாகத் தோன்றுகிறது. ஏனென்றால், பல பயணங்களை விட ஒரே நேரத்தில் பல வினவல்களை இயக்க GraphQL உங்களை அனுமதிக்கிறது. நீங்கள் ஒரு பொருளை அல்லது அந்த பொருளுக்கான புலங்களின் துணைத் தேர்வையும் தேர்ந்தெடுக்கலாம்.
GraphQL தேடல் தொடர்பான பொருட்களை வினவுகிறது மற்றும் ஒரு கோரிக்கையில் தொடர்புடைய தரவைப் பெறுகிறது. எனவே பல API அழைப்புகளைச் செய்வதற்குப் பதிலாக, ஒரே பயணத்தில் டேட்டாவைப் பெறலாம். GraphQL இன் இந்த அம்சம் உங்கள் பயன்பாட்டை விரைவுபடுத்தும் செயலாக்க நேரத்தைக் குறைக்கிறது, நிகழ்நேரத் தரவைக் கையாளும் பயன்பாடுகளுக்கு GraphQL ஐ சிறந்ததாக ஆக்குகிறது.
4. GraphQL ஐப் பயன்படுத்தி தரவைப் பெறுவது திறமையானது
தரவு பெறுவதில் GraphQL திறமையானது. நீங்கள் ஒரு கோரிக்கையை வைக்கும்போது, GraphQL சேவையகத்தை வினவுகிறது மற்றும் உங்கள் வினவலுக்கு குறிப்பிட்ட பதிலை வழங்கும். தரவுகளை அதிகமாகப் பெறுவதற்கும் குறைவாகப் பெறுவதற்கும் இடமில்லை. இது நெட்வொர்க்கில் அதிக தரவு அல்லது போதுமான தரவு இல்லாத வாய்ப்புகளை குறைக்கிறது.
நீங்கள் ஒரு விரிவான வினவலை எழுதும்போது, உங்களுக்குத் தேவையானதைப் பெறுவீர்கள். GraphQL குறிப்பிட்ட மற்றும் எளிதாக படிக்க-வடிவமைப்பைக் கற்றுக்கொள்வதையும் பயன்படுத்துவதையும் எளிதாக்கும் தரவை வழங்குகிறது. GraphQL அது பெறும் தரவைக் கட்டுப்படுத்துகிறது, சேவையகத்தை அல்ல. எனவே பயன்பாடு தவறான அல்லது தேவையற்ற தரவுகளை கையாள வேண்டியதில்லை.
5. GraphQL சிக்கலான அமைப்புகளுடன் வேலை செய்கிறது
GraphQL பல்துறை திறன் கொண்டது. GraphQL இன் APIக்குப் பின்னால் நீங்கள் பல அமைப்புகளை ஒருங்கிணைக்கலாம். அதன் எளிய அமைப்பு அது ஒருங்கிணைக்கும் மற்ற அமைப்புகளின் சிக்கலை எளிதாக்குகிறது. எடுத்துக்காட்டாக, இது ஒரு பயன்பாடு அல்லது சேவையகத்திலிருந்து தரவைப் பெறுகிறது என்றால், அதை அதன் எளிய வடிவத்தில் தொகுக்கிறது. இது நிறைய தரவுகளைக் கையாளும் பெரிய பயன்பாடுகளுக்கு ஏற்றதாக அமைகிறது.
ஒரு ஒற்றைப் பயன்பாட்டிலிருந்து நகர்த்தும்போது GraphQL பயனுள்ளதாக இருக்கும் ஒரு மைக்ரோ சர்வீஸ் கட்டிடக்கலை . GraphQL ஆனது பல மைக்ரோ சர்வீஸ்களை ஒரு விரிவான திட்டத்தில் இணைப்பதன் மூலம் தொடர்பு கொள்ள முடியும்.
இது மைக்ரோ சர்வீஸ்கள், தரவுத்தளங்கள் மற்றும் ஏபிஐகளில் இருந்து தரவை ஒரே நெட்வொர்க் அழைப்பில் நிர்வகிக்க முடியும். தரவு வரும் பின்தள அமைப்புகளின் சிக்கலான தன்மையை GraphQL சுருக்குகிறது.
6. GraphQL பதிப்பைத் தவிர்க்கிறது
GraphQL உங்கள் ஸ்கீமாவின் பதிப்புகளைச் சார்ந்தது அல்ல. உங்கள் தரவுத்தளத்தில் மாற்றங்கள் செய்து புதிய புலங்களைச் சேர்த்தால், அது ஏற்கனவே உள்ள வினவல்களை பாதிக்காது. GraphQL API ஏற்கனவே உள்ள ஆதாரங்களை மட்டுமே வினவுகிறது மற்றும் காலாவதியான தரவை மறைக்கும். உங்கள் முழு தரவுத்தளத்தையும் மாற்ற வேண்டிய அவசியமில்லை.
GraphQL APIகளின் தற்போதைய பதிப்பைப் பயன்படுத்துவது பயன்பாடுகளில் பிழைகள் மற்றும் முரண்பாடுகளைக் குறைக்கிறது. பயன்பாடுகள் அவற்றின் இயக்க நேரத்தை பாதிக்காமல் தொடர்ந்து புதிய அம்சங்களுக்கு மேம்படுத்தலாம்.
7. உங்கள் பயன்பாட்டை GraphQL மூலம் அளவிடுவது எளிது
GraphQL எந்த வகையான பயன்பாடு மற்றும் தரவுத்தளத்துடன் வேலை செய்கிறது. இது ஒரு கூட்டமைப்பு கட்டமைப்பைக் கொண்டுள்ளது, இது ஒரே நேரத்தில் பல பின்தளங்களை ஆதரிக்க அனுமதிக்கிறது.
பல அமைப்புகளிலிருந்து தரவைக் கையாளும் பயன்பாடுகள் GraghQL ஐப் பயன்படுத்தி அவற்றின் APIகளை எளிதாக அளவிட முடியும். அளவிடக்கூடிய APIகள் பயன்பாட்டின் பரவலான தத்தெடுப்பு மற்றும் வெற்றியை உறுதி செய்கின்றன. நீங்கள் எந்த வகையான தரவுத்தளத்துடனும் தொடர்புடையதாக இருந்தாலும் அல்லது தொடர்பில்லாததாக இருந்தாலும் அதைப் பயன்படுத்தலாம்.
யூடியூப் வீடியோக்களை ஒரே நேரத்தில் பார்க்கவும்
8. GraphQL உங்கள் சொந்த குறியீட்டைப் பயன்படுத்த உங்களை அனுமதிக்கிறது
அதில் கூறியபடி GraphQL இணையதளம் , இது பல்வேறு நவீன நிரலாக்க மொழிகளுடன் இணக்கமானது. குறிப்பிட்ட மென்பொருளுக்கு மட்டுப்படுத்தாமல் பயன்பாட்டிற்கான ஒரே மாதிரியான API ஐ நீங்கள் உருவாக்கலாம்.
GraphQL APIகள் நவீன நிரலாக்க மொழிகளுடன் இணக்கமாக உள்ளன, எனவே நீங்கள் விரும்பிய மொழியில் குறியீட்டை உருவாக்கலாம். உங்கள் பயன்பாட்டை பாதிக்கும் துறைகளில் செயல்பாடுகளை உருவாக்கலாம்.
எடுத்துக்காட்டாக, நீங்கள் ஒரு GraphQL வகையைச் செயல்படுத்தலாம்:
type Character {
name: String
homeWorld: Planet
friends: [Character]
}
பைதான் போன்ற மொழியில், இது போன்ற குறியீட்டைப் பயன்படுத்துதல்:
class Character:
def name(self):
return self._name
def homeWorld(self);
return fetchHomeworld(self._homeworldID)
def friends(self):
return map(fetchCharacter, self._friendIDs)
9. இது சக்திவாய்ந்த டெவலப்பர் கருவிகளைக் கொண்டுள்ளது
GraphQL ஆனது உள்ளமைக்கப்பட்ட உள்நோக்க அமைப்பைக் கொண்டுள்ளது. இது ஸ்கீமாவை வினவவும், எந்த வகையான வினவல்களை ஆதரிக்கிறது என்பதைக் கண்டறியவும் உங்களை அனுமதிக்கிறது. புதிய செயல்பாடுகளை உருவாக்க உங்களை அனுமதிக்கும் சக்திவாய்ந்த டெவலப்பர் கருவிகளும் இதில் உள்ளன. இது சரிபார்த்தல் மற்றும் தானாக நிறைவு செய்யும் அம்சங்களையும் கொண்டுள்ளது. திட்டத்தில் ஏற்படும் மாற்றங்களைக் கண்காணிக்க நீங்கள் ஒரு நிர்வாக சேவையையும் பதிவு செய்யலாம்.
GraphQLஐ ஏன் ஏற்றுக்கொள்ள வேண்டும்?
GraphQL இன் பயன்பாடு 2015 இல் திறந்த மூலத்திற்கு அறிமுகப்படுத்தப்பட்டதிலிருந்து உயர்ந்துள்ளது. இது அதன் பல்துறை, செயல்திறன் மற்றும் பிற அமைப்புகளுடன் பொருந்தக்கூடிய தொழில்துறை சிக்கல்களைத் தீர்த்தது.
Netflix, Facebook மற்றும் PayPal போன்ற பெரிய பேலோடுகளைக் கையாளும் பயன்பாடுகளுக்கு GraphQL சிறந்தது. டெவலப்பர்கள் அதன் வரம்புகளில் பணிபுரிவதால், GraphQL ஐ ஏற்றுக்கொண்ட நிறுவனங்களின் பட்டியல் தொடர்ந்து அதிகரித்து வருகிறது. இது ஒரு போட்டித்தன்மை கொண்ட பயன்பாடுகளுக்கான தீர்வாக மாறியுள்ளது.
வளர்ந்து வரும் சந்தை மற்றும் நிதியுதவியுடன், GraphQL விரைவில் பிரபலமான API கட்டமைப்புகளை மிஞ்சும்.