Go இல் GraphQL API எண்ட்பாயிண்ட்களை எவ்வாறு பயன்படுத்துவது

Go இல் GraphQL API எண்ட்பாயிண்ட்களை எவ்வாறு பயன்படுத்துவது

வரைபட வினவல் மொழி (GraphQL) என்பது GraphQL APIகளுடன் தொடர்புகொள்வதற்கான ஒரு மொழி மற்றும் விவரக்குறிப்பாகும், இது இணையம் முழுவதும் தகவல் பரிமாற்றத்திற்கான HTTP அடிப்படையிலான கிளையன்ட்-சர்வர் கட்டமைப்பாகும்.





Facebook ஆனது REST கட்டடக்கலை தரநிலைக்கு மாற்றாக GraphQL ஐ வெளியிட்டது. GraphQL ஆனது, REST உடனான பெரும்பாலான சிக்கல்களை நிலையற்ற மற்றும் தற்காலிகமாகச் சேமிக்கக்கூடிய முறையில் தீர்க்கிறது. இது எதிர்பார்க்கப்படும் வெளியீடு(கள்) அல்லது உள்ளீடு(களை) விவரிக்கும் எளிய மற்றும் உள்ளுணர்வு தொடரியல் வழங்குகிறது, மேலும் API ஆனது கோரிக்கையுடன் பொருந்தக்கூடிய தரவை ஒளிபரப்புகிறது.





அன்றைய வீடியோவை உருவாக்கவும்

GraphQL என்பது ஒரு விவரக்குறிப்பு என்பதால், Go உட்பட எந்த சர்வர் பக்க நிரலாக்க மொழியிலும் GraphQL APIகளை உருவாக்கி நுகரலாம்.





Go இல் GraphQL APIகளுடன் தொடங்குதல்

GraphQL ஆனது HTTP கட்டமைப்பை அடிப்படையாகக் கொண்டது , மற்றும் Go ஆனது அதன் உள்ளமைவில் HTTP செயல்பாட்டை வழங்குகிறது http தொகுப்பு.

நீங்கள் பயன்படுத்தலாம் http தொகுப்பு Go இல் RESTful APIகளை பயன்படுத்தவும் , மற்ற அம்சங்கள் மத்தியில். GraphQL க்கு, நீங்கள் GraphQL API சேவையகங்களுக்கு வினவல்கள் மற்றும் பிறழ்வுகளை உருவாக்கலாம் http தொகுப்பு மற்றும் பிற உள்ளமைக்கப்பட்ட தொகுப்புகள்.



விபிஎன் இல்லாமல் பள்ளி வைஃபை மீது ஸ்னாப்சாட்டை எவ்வாறு பயன்படுத்துவது
  Go HTTP தொகுப்பின் மேலோட்டப் பகுதி

GraphQL கிளையன்ட் தொகுப்புகள் போன்றவை இயந்திரப்பெட்டி அல்லது shurCooL's GraphQL APIகளுடன் தொடர்பு கொள்ளும் செயல்முறையை இன்னும் எளிதாக்குகிறது.

நீங்கள் பயன்படுத்தலாம் http ஒரு GraphQL API உடன் தொடர்பு கொள்ள எந்த சார்புகளும் இல்லாமல் தொகுப்பு. தொடங்குவதற்கு, உங்கள் Go கோப்பில் இந்தத் தொகுப்புகளை இறக்குமதி செய்யவும்:





import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"time"
)

நீங்கள் பயன்படுத்துவீர்கள் பைட்டுகள் கோரிக்கைக்கு ஒரு புதிய இடையகத்தை உருவாக்க தொகுப்பு json JSON கோரிக்கை அமைப்புக்கு வரைபடத்தை மார்ஷல் செய்வதற்கான தொகுப்பு. நீங்கள் பயன்படுத்தலாம் ioutil பதில் உடலைப் படிக்க, மற்றும் நேரம் கோரிக்கைக்கான கால வரம்பை அமைக்க தொகுப்பு.

எனது மின்னஞ்சல் முகவரியுடன் இணைக்கப்பட்ட அனைத்து கணக்குகளையும் கண்டறியவும்

Go உடன் GraphQL APIகளை வினவுகிறது

பல இலவச பொது GraphQL APIகள் உள்ளன, நீங்கள் வினவலாம் மற்றும் உங்கள் பயன்பாடுகளில் ஒருங்கிணைக்கலாம். இந்தக் கட்டுரையில், உலகெங்கிலும் உள்ள நாடுகளின் தரவை வினவ, அப்பல்லோ கிராஃபிக்யூஎல் இன் நாடுகளின் API ஐ வினவுவீர்கள்.





அனைத்து GraphQL செயல்பாடுகளும் பொதுவாக POST கோரிக்கைகளாகும், ஏனெனில் அவை பேலோட் (கோரிக்கை அமைப்பு) இருக்க வேண்டும். பெரும்பாலான GraphQL APIகள் JSON கோரிக்கை அமைப்பை உள்ளடக்க வகையாக ஏற்றுக்கொள்கின்றன, மேலும் JSON உடன் பணிபுரிய வரைபடங்கள் மற்றும் கட்டமைப்புகளைப் பயன்படுத்துவதற்கான செயல்பாட்டை Go வழங்குகிறது .

API ஐ வினவ, GraphQL ஸ்கீமாவின் கட்டமைப்பை நீங்கள் படிக்க வேண்டும். வினவல் வழக்கமான GraphQL வினவலைப் போலவே இருக்கும், தவிர செயல்பாடு (வினவல் அல்லது பிறழ்வு) முக்கியமானது மற்றும் தரவு வரைபடத்தின் மதிப்பாகும்.

கோரிக்கைக்காக நீங்கள் JSON இல் மார்ஷல் செய்யும் JSON வரைபட நிகழ்வை எவ்வாறு அறிவிக்கலாம் என்பது இங்கே உள்ளது.

jsonMapInstance := map[string]string { 
"query": `
{
countries {
name,
phone,
currency,
code,
emoji
}
}
`,
}

தி jsonMapInstance மாறி என்பது கோரிக்கையின் உள்ளடக்கத்திற்கான வரைபட நிகழ்வாகும். மதிப்பு என்பது API இலிருந்து நீங்கள் எதிர்பார்க்கும் வினவல் தரவின் சரமாகும். இந்த வழக்கில், நீங்கள் API இல் இருந்து எதிர்பார்க்கும் வினவல் தரவு நாடுகள் திட்டம் ஆகும் பெயர் , தொலைபேசி , நாணய , குறியீடு , மற்றும் ஈமோஜி வயல்வெளிகள்.

நீங்கள் பயன்படுத்தலாம் மார்ஷல் முறை json வரைபட நிகழ்வை JSONக்கு குறியாக்க தொகுப்பு. தி மார்ஷல் முறை குறியிடப்பட்ட JSON ஐயும், குறியாக்கச் சிக்கல் உள்ள நிகழ்வுகளுக்கான பிழையையும் வழங்குகிறது.

jsonResult, err := json.Marshal(jsonMapInstance) 

if err != nil {
fmt.Printf("There was an error marshaling the JSON instance %v", err)
}

வரைபடத்தை JSON க்கு குறியாக்கம் செய்தவுடன், நீங்கள் POST கோரிக்கையை API க்கு அனுப்பலாம். நீங்கள் ஒரு புதிய கோரிக்கை நிகழ்வை உருவாக்கலாம் புதிய கோரிக்கை முறை, கோரிக்கை வகை, URL மற்றும் JSON இடையகத்தை எடுக்கும்.

தி புதிய கோரிக்கை முறை கோரிக்கை நிகழ்வை வழங்குகிறது. API இன் விவரக்குறிப்புகளைப் பொறுத்து நீங்கள் உள்ளடக்க வகையை அமைக்க வேண்டும். HTTP கோரிக்கைகளுக்கான உள்ளடக்க வகையை நீங்கள் அமைக்கலாம் அமைக்கவும் முறை தலைப்பு உங்கள் கோரிக்கை நிகழ்வின் முறை.

பேபால் பெற உங்கள் வயது எவ்வளவு?
newRequest, err := http.NewRequest("POST", "https://countries.trevorblades.com/graphql", bytes.NewBuffer(jsonResult)) 
newRequest.Header.Set("Content-Type", "application/json")

உங்கள் கோரிக்கைக்கு எளிய HTTP கிளையண்டை உருவாக்கலாம் வாடிக்கையாளர் HTTP தொகுப்பின் முறை. தி வாடிக்கையாளர் முறை உங்கள் கோரிக்கைக்கான கால வரம்பை அமைக்கவும் அனுமதிக்கிறது நேரம் தொகுப்பு.

 
client := &http.Client{Timeout: time.Second * 5}
response, err := client.Do(newRequest)

if err != nil {
fmt.Printf("There was an error executing the request%v", err)
}

நீங்கள் HTTP கிளையண்டை அறிவித்த பிறகு, உங்கள் API கோரிக்கையை செயல்படுத்தவும் செய் முறை. தி செய் முறை கோரிக்கை நிகழ்வை ஏற்றுக்கொண்டு, பதிலையும் பிழையையும் வழங்குகிறது.

உடன் API கோரிக்கையின் பதிலைப் படிக்கலாம் ioutil தொகுப்புகள் அனைத்தையும் படிக்கவும் முறை. இது ஒரு வெளியீட்டு ஸ்ட்ரீமை எடுத்து, நீங்கள் கையாளக்கூடிய பிழையுடன் தரவின் பைட் ஸ்லைஸை வழங்குகிறது.

responseData, err := ioutil.ReadAll(response.Body) 

if err != nil {
fmt.Printf("Data Read Error%v", err)
}

உள்ளமைக்கப்பட்ட சரம் செயல்பாடு மூலம், நீங்கள் பைட் ஸ்லைஸ் பதிலை சரம் வகைக்கு மாற்றலாம்.

fmt.Println(string(responseData)) 

API கோரிக்கையின் முடிவைக் காட்டும் பதில் இதோ:

  GraphQL API வினவலின் வெளியீடு நாடுகளின் பட்டியலையும் அவற்றின் கோரப்பட்ட புலங்களையும் காட்டுகிறது.

RESTful APIகளை உட்கொள்வது GraphQL APIகளை உட்கொள்வது போன்றது

REST மற்றும் GraphQL APIகள் இரண்டும் HTTP நெறிமுறையைப் பயன்படுத்துவதால், ஒவ்வொன்றையும் உட்கொள்வது மிகவும் ஒத்த செயல்முறையாகும், மேலும் நீங்கள் இதைப் பயன்படுத்தலாம் http இரண்டு நிகழ்வுகளுக்கும் தொகுப்பு.

நீங்கள் வாடிக்கையாளர்களை உருவாக்க வேண்டும், நிகழ்வுகளைக் கோர வேண்டும் மற்றும் அதே தொகுப்புகளுடன் தரவைப் படிக்க வேண்டும்.