গো-তে গ্রাফকিউএল এপিআই এন্ডপয়েন্ট কীভাবে ব্যবহার করবেন

গো-তে গ্রাফকিউএল এপিআই এন্ডপয়েন্ট কীভাবে ব্যবহার করবেন

গ্রাফ ক্যোয়ারী ল্যাঙ্গুয়েজ (GraphQL) হল একটি ভাষা এবং স্পেসিফিকেশন যা GraphQL API-এর সাথে ইন্টারঅ্যাক্ট করার জন্য, ওয়েব জুড়ে যোগাযোগের জন্য একটি HTTP-ভিত্তিক ক্লায়েন্ট-সার্ভার আর্কিটেকচার।





REST আর্কিটেকচারাল স্ট্যান্ডার্ডের বিকল্প হিসেবে Facebook GraphQL প্রকাশ করেছে। গ্রাফকিউএল REST এর সাথে বেশিরভাগ সমস্যাকে স্টেটলেস এবং ক্যাশেযোগ্য পদ্ধতিতে সমাধান করে। এটি একটি সহজ এবং স্বজ্ঞাত সিনট্যাক্স প্রদান করে যা প্রত্যাশিত আউটপুট(গুলি) বা ইনপুট(গুলি) বর্ণনা করে এবং API অনুরোধের সাথে মিলে যাওয়া ডেটা রিলে করে৷





দিনের মেকইউজের ভিডিও

যেহেতু GraphQL একটি স্পেসিফিকেশন, আপনি Go সহ যেকোন সার্ভার-সাইড প্রোগ্রামিং ল্যাঙ্গুয়েজে GraphQL API তৈরি এবং ব্যবহার করতে পারেন।





Go-তে GraphQL APIs দিয়ে শুরু করা

গ্রাফকিউএল HTTP আর্কিটেকচারের উপর ভিত্তি করে , এবং Go এর অন্তর্নির্মিত মধ্যে HTTP কার্যকারিতা প্রদান করে http প্যাকেজ

আপনি ব্যবহার করতে পারেন http প্যাকেজ থেকে Go-তে RESTful API ব্যবহার করুন , অন্যান্য বৈশিষ্ট্য মধ্যে. GraphQL এর জন্য, আপনি GraphQL API সার্ভারের সাথে ক্যোয়ারী এবং মিউটেশন করতে পারেন http প্যাকেজ এবং অন্যান্য অন্তর্নির্মিত প্যাকেজ।



  Go HTTP প্যাকেজের ওভারভিউ বিভাগ

গ্রাফকিউএল ক্লায়েন্ট প্যাকেজ পছন্দ করে মেশিনবক্স বা shurCooL এর GraphQL API-এর সাথে ইন্টারঅ্যাক্ট করার প্রক্রিয়াটিকে আরও সহজ করে তুলুন।

আপনি ব্যবহার করতে পারেন http একটি GraphQL API এর সাথে ইন্টারঅ্যাক্ট করার জন্য কোনো নির্ভরতা ছাড়াই প্যাকেজ। শুরু করতে আপনার Go ফাইলে এই প্যাকেজগুলি আমদানি করুন:





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

আপনি ব্যবহার করবেন বাইট অনুরোধের জন্য একটি নতুন বাফার তৈরি করতে প্যাকেজ এবং json JSON অনুরোধের বডিতে একটি মানচিত্র মার্শাল করার জন্য প্যাকেজ। তুমি ব্যবহার করতে পার ioutil প্রতিক্রিয়া শরীর পড়তে, এবং সময় অনুরোধের জন্য একটি সময়সীমা সেট করতে প্যাকেজ।

Go এর সাথে গ্রাফকিউএল এপিআই অনুসন্ধান করা হচ্ছে

অনেকগুলি বিনামূল্যের পাবলিক GraphQL API রয়েছে যা আপনি আপনার অ্যাপ্লিকেশনগুলিতে জিজ্ঞাসা করতে এবং একীভূত করতে পারেন৷ এই নিবন্ধটির জন্য, আপনি বিশ্বব্যাপী দেশগুলির ডেটা অনুসন্ধানের জন্য Apollo GraphQL-এর দেশগুলির API জিজ্ঞাসা করবেন৷





সমস্ত গ্রাফকিউএল অপারেশনগুলি সাধারণত অনুরোধ পোস্ট করে কারণ তাদের অবশ্যই একটি পেলোড (রিকোয়েস্ট বডি) থাকতে হবে। বেশিরভাগ গ্রাফকিউএল এপিআই JSON রিকোয়েস্ট বডিকে কন্টেন্টের ধরন হিসেবে গ্রহণ করে এবং Go JSON এর সাথে কাজ করার জন্য মানচিত্র এবং স্ট্রাকট ব্যবহার করার জন্য কার্যকারিতা প্রদান করে .

API জিজ্ঞাসা করার জন্য আপনাকে 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-এ মানচিত্রটি এনকোড করলে, আপনি API-এ POST অনুরোধ পাঠাতে পারেন। আপনি এর সাথে একটি নতুন অনুরোধের উদাহরণ তৈরি করতে পারেন নতুন অনুরোধ পদ্ধতি, যা অনুরোধের ধরন, 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 APIs খাওয়ার মত

যেহেতু REST এবং GraphQL API উভয়ই এইচটিটিপি প্রোটোকল ব্যবহার করে, তাই প্রতিটি গ্রহণ করা একটি খুব অনুরূপ প্রক্রিয়া এবং আপনি ব্যবহার করতে পারেন http উভয় ক্ষেত্রেই প্যাকেজ।

আপনাকে ক্লায়েন্ট তৈরি করতে হবে, উদাহরণের অনুরোধ করতে হবে এবং একই প্যাকেজগুলির সাথে ডেটা পড়তে হবে।