ஒரு பயனுள்ள RESTful API ஐ எவ்வாறு வடிவமைப்பது? GraphQL உடன் உங்கள் அனுபவம் என்ன?

ஒரு பயனுள்ள  RESTful API ஐ வடிவமைப்பது  பின்-இறுதி டெவலப்பர்களுக்கு ஒரு முக்கியமான திறமையாகும். ஒரு API என்பது கிளையன்ட் மற்றும் சர்வருக்கு இடையே ஒரு பாலமாக மட்டுமல்லாமல் performance, , அளவிடுதல் மற்றும் பயனர் அனுபவத்தையும் நேரடியாக பாதிக்கிறது. RESTful API களுடன்,  GraphQL  என்பது பல டெவலப்பர்கள் ஏற்றுக்கொள்ளும் மற்றொரு முக்கிய தொழில்நுட்பமாகும். இந்த கட்டுரை ஒரு பயனுள்ள RESTful API ஐ எவ்வாறு வடிவமைப்பது மற்றும் GraphQL பற்றிய நுண்ணறிவுகளைப் பகிர்ந்து கொள்வது குறித்து உங்களுக்கு வழிகாட்டும்.

ஒரு பயனுள்ள RESTful API ஐ வடிவமைத்தல்

அ. REST கொள்கைகளைப் பின்பற்றுங்கள்.

  • REST(பிரதிநிதித்துவ மாநில பரிமாற்றம்)  என்பது குறிப்பிட்ட கொள்கைகளை அடிப்படையாகக் கொண்ட ஒரு மென்பொருள் கட்டமைப்பாகும். ஒரு பயனுள்ள RESTful API ஐ வடிவமைக்க, நீங்கள் பின்வரும் கொள்கைகளை கடைபிடிக்க வேண்டும்:

    • Stateless:  ஒவ்வொரு கிளையன்ட் கோரிக்கையும் சேவையகம் அதைச் செயல்படுத்தத் தேவையான அனைத்து தகவல்களையும் கொண்டிருக்க வேண்டும். சேவையகம் கிளையண்டின் நிலையைச் சேமிக்காது.

    • Client-Server:  அதிகரிக்கவும் அளவிடவும் கிளையன்ட் மற்றும் சர்வரைப் பிரிக்கவும் flexibility.

    • Uniform Interface:  நிலையான HTTP முறைகள்( GET, POST, PUT, DELETE) மற்றும் நிலையான URL கட்டமைப்புகளைப் பயன்படுத்தவும்.

    • Layered System:  ப்ராக்ஸிகள் அல்லது லோட் பேலன்சர்கள் போன்ற கூறுகள் சுயாதீனமாக இயங்க அனுமதிக்கும் அடுக்கு கட்டமைப்பை ஆதரிக்கிறது.

b. பயனர் நட்பு URLகளை வடிவமைக்கவும்

  • URLகள் தெளிவாகவும் புரிந்துகொள்ள எளிதாகவும் இருக்க வேண்டும்:  எடுத்துக்காட்டாக,  /users  பயனர்களின் பட்டியலை மீட்டெடுக்க,  ஒரு குறிப்பிட்ட பயனரைப் பற்றிய தகவலுக்கு /users/{id}  . get

  • வினைச்சொற்களுக்குப் பதிலாக பெயர்ச்சொற்களைப் பயன்படுத்தவும்:  எடுத்துக்காட்டாக,  /orders  க்கு பதிலாக  /getOrders.

  • படிநிலை URLகள்:  எடுத்துக்காட்டாக,  /users/{id}/orders  ஒரு பயனரின் ஆர்டர்களின் பட்டியலை மீட்டெடுக்க.

c. சரியான HTTP முறைகளைப் பயன்படுத்தவும்.

  • GET:  தரவை மீட்டெடுக்கவும்(எ.கா., பயனர்களின் பட்டியலைப் பெறவும்).

  • POST:  புதிய தரவை உருவாக்கு(எ.கா., புதிய பயனரை உருவாக்கு).

  • PUT/PATCH:  தரவைப் புதுப்பிக்கவும்(முழு புதுப்பிப்புகளுக்கு PUT, பகுதி புதுப்பிப்புகளுக்கு PATCH).

  • DELETE:  தரவை நீக்கு(எ.கா., delete ஒரு பயனர்).

ஈ. API ஐ நிர்வகி Versioning

  • Versioning:  பழைய கிளையன்ட்களை உடைக்காமல் API உருவாக முடியும் என்பதை உறுதிப்படுத்தவும். எடுத்துக்காட்டாக, use  /v1/users  or header  Accept-Version: v1.

  • Backward Compatibility:  ஒரு குறிப்பிட்ட காலத்திற்கு பழைய பதிப்புகளை ஆதரிக்கவும்.

இ. பிழைகளை திறம்பட கையாளவும்.

  • HTTP நிலை குறியீடுகள்: 200  (வெற்றி),  400  (கிளையன்ட் பிழை),  500  (சர்வர் பிழை)  போன்ற பொருத்தமான நிலை குறியீடுகளைப் பயன்படுத்தவும்  .

  • பிழைச் செய்திகளை அழி:  விரிவான மற்றும் புரிந்துகொள்ளக்கூடிய பிழைச் செய்திகளைத் திரும்பப் பெறுங்கள். எடுத்துக்காட்டாக:

    { "error": "Invalid input", "message": "The 'email' field is required." }

f. API-ஐப் பாதுகாக்கவும்

  • அங்கீகாரம் மற்றும் அங்கீகாரம்:  பயனர் அங்கீகாரத்திற்கு OAuth2 அல்லது JWT போன்ற முறைகளைப் பயன்படுத்தவும்.

  • HTTPS:  தரவு பரிமாற்றத்தை குறியாக்க எப்போதும் HTTPS ஐப் பயன்படுத்தவும்.

  • விகித வரம்பு:  DDoS தாக்குதல்களைத் தடுக்க ஒரு வாடிக்கையாளரிடமிருந்து வரும் கோரிக்கைகளின் எண்ணிக்கையைக் கட்டுப்படுத்துங்கள்.

GraphQL உடன் அனுபவம்

அ. கிராஃப்க்யூஎல் என்றால் என்ன?

  • கிராஃப்க்யூஎல்  என்பது பேஸ்புக் உருவாக்கிய ஏபிஐகளுக்கான வினவல் மொழியாகும், இது வாடிக்கையாளர்கள் தங்களுக்குத் தேவையான தரவை சரியாகக் கோர அனுமதிக்கிறது.

  • நன்மைகள்:

    • Flexibility:  வாடிக்கையாளர்கள் தேவையான தரவை மட்டுமே கோர முடியும், இதனால் தரவு பரிமாற்றம் குறைகிறது.

    • Single Endpoint: /graphql REST போன்ற பல முனைப்புள்ளிகளுக்குப் பதிலாக  ஒரே ஒரு முனைப்புள்ளி() மட்டுமே தேவை.

    • Strongly Typed:  தரவு வகைகளை வரையறுக்க GraphQL ஸ்கீமாக்களைப் பயன்படுத்துகிறது, இது ஆரம்பகால பிழை கண்டறிதலை செயல்படுத்துகிறது.

b. GraphQL-ஐ எப்போது பயன்படுத்த வேண்டும்?

  • பயன்பாடு பல மூலங்களிலிருந்து தரவைப் பெற வேண்டியிருக்கும் போது.

  • வாடிக்கையாளர்கள் flexibility தரவைக் கோரும்போது.

  • கோரிக்கைகளின் எண்ணிக்கையையும் தரவு பரிமாற்றத்தையும் குறைக்க விரும்பும் போது.

c. GraphQL இல் உள்ள சவால்கள்

  • Performance:  சிக்கலான வினவல்கள் மேம்படுத்தப்படாவிட்டால் சேவையகத்தை சிரமப்படுத்தலாம்.

  • Caching:  GraphQLகள் காரணமாக REST ஐ விட சவாலானது flexibility.

  • Learning Curve: get தொடரியல் மற்றும் அது எவ்வாறு செயல்படுகிறது என்பதை நன்கு அறிந்துகொள்ள  நேரம் எடுக்கும் .

RESTful API மற்றும் GraphQL ஐ ஒப்பிடுதல்

அளவுகோல்கள் ரெஸ்ட்ஃபுல் API கிராஃப்க்யூஎல்
இறுதிப்புள்ளி பல முனைப்புள்ளிகள்(எ.கா.,  /users/orders) ஒற்றை முனைப்புள்ளி( /graphql)
Flexibility வாடிக்கையாளர்கள் சேவையகத்திலிருந்து எல்லா தரவையும் பெறுகிறார்கள். வாடிக்கையாளர்கள் தங்களுக்குத் தேவையான தரவை மட்டுமே பெறுவார்கள்.
Performance API வடிவமைப்பைப் பொறுத்தது மேம்படுத்தப்படாவிட்டால் சேவையகத்தை கஷ்டப்படுத்தலாம்
Caching செயல்படுத்த எளிதானது caching அதிக சவாலானது ஏனெனில் flexibility
Learning Curve கற்றுக்கொள்வதும் செயல்படுத்துவதும் எளிது get பழகுவதற்கு நேரம் தேவை.

முடிவுரை

  • தெளிவான தேவைகள் மற்றும் எளிதான செயல்படுத்தலுடன் கூடிய எளிய பயன்பாடுகளுக்கு RESTful API  பொருத்தமானது.

  • flexibility தரவு வினவலில் தேவைப்படும் சிக்கலான பயன்பாடுகளுக்கு GraphQL  சிறந்தது .

உங்கள் திட்டத்தின் தேவைகளைப் பொறுத்து, நீங்கள் RESTful API மற்றும் GraphQL இரண்டில் ஒன்றைத் தேர்வு செய்யலாம். உங்களுக்குத் தேவைப்பட்டால் flexibility மற்றும் அதிக performance, GraphQL ஒரு சிறந்த தேர்வாகும். மறுபுறம், உங்களுக்கு எளிமையான மற்றும் செயல்படுத்த எளிதான தீர்வு தேவைப்பட்டால், RESTful API சிறந்த தேர்வாக இருக்கும். மிகவும் பொருத்தமான தொழில்நுட்பத்தைத் தேர்ந்தெடுக்க உங்கள் விருப்பங்களை கவனமாகக் கவனியுங்கள்!