গো রেস্টি

গো রেস্টি হল একটি গো ভাষা লাইব্রেরি যা RESTful API ক্লায়েন্ট তৈরি করার জন্য। এটি সংক্ষিপ্ত এবং শক্তিশালী API প্রদান করে যা ডেভেলপারদের কে সহজেই HTTP রিকোয়েস্ট পাঠানো এবং রেসপন্স হ্যান্ডেল করার সুযোগ দেয়।

বৈশিষ্ট্য

  • GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS এবং অন্যান্য রিকোয়েস্ট মেথড সাপোর্ট করে
  • সহজ এবং চেইনেবল সেটিং এবং রিকোয়েস্ট মেথড
  • রিকোয়েস্ট বডি মৌলিক ‘string’, ‘[]byte’, ‘struct’, ‘map’, ‘slice’, এবং ‘io.Reader’ টাইপে হতে পারে
    • স্বয়ংক্রিয়ভাবে ‘Content-Type’ ডিটেক্ট করে
    • ‘io.Reader’ এর জন্য অনবাফারড প্রসেসিং ব্যবহার করে।
    • মিডলওয়্যার এবং রিকোয়েস্ট এগজিকিউশনে ‘Request.RawRequest’ মাধ্যমে মূল ‘*http.Request’ ইনস্ট্যান্স অ্যাক্সেস করে
    • ‘Request.RawRequest.GetBody()’ মাধ্যমে রিকোয়েস্ট বডির একাধিক পঠনের সুযোগ দেয়
  • রেস্পন্স অবজেক্ট দ্বারা আরও বিশেষ সুযোগ প্রদান করা হয়
    • রেস্পন্স কে ‘[]byte’ অ্যারে হিসাবে অ্যাক্সেস করা যায় - ‘response.Body()’, বা ‘string’ হিসাবে - ‘response.String()’
    • রেস্পন্স টাইম ‘response.Time()’ এবং প্রাপ্ত টাইম ‘response.ReceivedAt()’ পেতে পারে
  • স্বয়ংক্রিয়ভাবে এনকোড এবং ডিকোড করে যেমন ‘JSON’ এবং ‘XML’ এর মতো কন্টেন্ট টাইপ
    • ‘Content-Type’ হেডার এবং ‘struct/map’ প্যারামিটার প্রদান না করার ক্ষেত্রে ডিফল্ট ভাবে ‘JSON’ দেয়
    • JSON এনকোডিং/ডিকোডিং এবং XML এনকোডিং/ডিকোডিং ওভাররাইড করার অপশন প্রদান করে
  • ‘multipart/form-data’ মাধ্যমে এক বা একাধিক ফাইল করে অ্যাপলোড করার সহজ পদ্ধতি
    • ফাইলগুলির কন্টেন্ট টাইপ স্বয়ংক্রিয়ভাবে ডিটেক্ট করে
  • ব্যাকঅফ পুনরাবৃত্তি ম্যানিস্ম এবং পুনরাবৃত্তি শর্ত ফাংশন রেফারেন্স সাপোর্ট করে
  • মিডলওয়্যার সাপোর্ট হোক রেস্টি ক্লায়েন্টের HTTP এবং REST রিকোয়েস্টের জন্য, রিকোয়েস্ট এবং রেস্পন্স এর মধ্যে
  • ‘Request.SetContext’ সাপোর্ট করে
  • ‘BasicAuth’ এবং ‘Bearer’ টোকেনের জন্য অনুমোদন অপশন
  • সমস্ত রিকোয়েস্ট বা নির্দিষ্ট রিকোয়েস্টের জন্য রিকুয়েস্ট ‘ContentLength’ মান সেট করে
  • কাস্টম রুট সার্টিফিকেট এবং ক্লায়েন্ট সার্টিফিকেট
  • একইভাবে ‘curl -o’ কমান্ডের মতো এইচটিটিপি রেসপন্স সরাসরি ফাইলে ডাউনলোড/সেভ করা
  • কুকিজ জন্য রিকুয়েস্ট এবং CookieJar সাপোর্ট
  • হোস্ট URL এর পরিবর্তে এসআরভি রেকর্ডের উপর ভিত্তি করে রিকুয়েস্টের সাপোর্ট
  • ‘Timeout’, ‘RedirectPolicy’, ‘Proxy’, ‘TLSClientConfig’, ‘Transport’, ইত্যাদি সেটিং সাপোর্ট করে
  • রেস্টি ডিজাইন
    • ক্লায়েন্ট লেভেলে সেট এবং সিলেক্ট করার সুযোগ, রিকুয়েস্ট লেভেলে ওভাররাইডের অপশন
    • রিকুয়েস্ট এবং রেস্পন্স যৌক্তিক
    • যদি প্রয়োজন হয় তাহলে ‘resty.New()’ ব্যবহার করে একাধিক ক্লায়েন্ট তৈরি করা যায়
  • করণায়নের জন্য গোরুটিন নিরাপদ
  • ডিবাগ মোড - স্পষ্ট এবং ধারাবাহিক লগ ডিস্প্লে
  • Gzip - গো স্বয়ংক্রিয়ভাবে এটি হ্যান্ডেল করে, রেস্টির মধ্যে ফলব্যু হ্যান্ডেলিং করা হয়
  • ‘HTTP/2’ এবং ‘HTTP/1.1’ দুটি সাপোর্ট করে
  • বাজেল সাপোর্ট
  • টেস্টিং রেস্টির জন্য সহজ মকিং প্রদান করে

সাপোর্টড গো সংস্করণ

go1.16 এবং এর উপরে ব্যবহার করা সার্বিক সুপারিশ করা হয়।

ভার্সন v1.10.0 থেকে রেস্টি সমর্থন করে go modules

রেস্টি ভার্সন v2 এবং উপরে, এটি পূর্ণরূপে গো মডিউলস প্যাকেজ পাবলিশিং সমর্থন করে। এটি ব্যবহার করার জন্য একটি গো সংস্করণের প্রয়োজন যা '/vN' সাফিক্স ইম্পোর্ট বুঝতে পারে:

  • 1.9.7+
  • 1.10.3+
  • 1.11+