প্রকল্প সম্পর্কে

Refit হল আধুনিক .NET-এর জন্য একটি স্বয়ংক্রিয় টাইপ-নিরাপদ REST লাইব্রেরি, যা Square-এর Retrofit দ্বারা ব্যাপকভাবে অনুপ্রাণিত। এটি REST API সংজ্ঞাকে লাইভ ইন্টারফেসে রূপান্তরিত করে, যার ফলে ডেভেলপাররা HTTP মেথড অ্যাট্রিবিউট সহ C# ইন্টারফেস হিসেবে API কন্ট্রাক্ট সংজ্ঞায়িত করতে পারেন এবং Refit সেই ইমপ্লিমেন্টেশন তৈরি করে যা কল করার জন্য HttpClient ব্যবহার করে। লাইব্রেরিটি WinUI, .NET Framework 4.6.2+, .NET 8/9/10/11, Blazor এবং Uno Platform সহ একাধিক প্ল্যাটফর্ম সমর্থন করে। এটি Roslyn সোর্স জেনারেটরের সাথে আসে যা বিল্ড সময়ে ক্লায়েন্ট তৈরি করে, রানটাইম রিফ্লেকশন হ্রাস করে এবং ট্রিমড এবং নেটিভ AOT অ্যাপ্লিকেশন সক্ষম করে। মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে: - .NET 5+ এ স্বয়ংক্রিয় ক্লায়েন্ট নিবন্ধন সহ সোর্স জেনারেশন - Get, Post, Put, Delete, Patch এবং Head HTTP মেথডের জন্য সমর্থন - ডাইনামিক কোয়েরিস্ট্রিং প্যারামিটার, অবজেক্ট ফ্ল্যাটেনিং এবং কালেকশন ফরম্যাটিং সহ - JSON, JSON Lines, XML এবং ফর্ম পোস্টের জন্য বডি কন্টেন্ট সমর্থন - Bearer অথেনটিকেশন সহ স্ট্যাটিক এবং ডাইনামিক রিকোয়েস্ট হেডার - বিভিন্ন পার্ট টাইপ সহ মাল্টিপার্ট আপলোড - প্রতি-রিকোয়েস্ট টাইমআউট এবং ক্যান্সেলেশন টোকেন সমর্থন - একাধিক API-এর ইন্টারফেস ইনহেরিটেন্স এবং কম্পোজিশন - ডিফল্ট ইন্টারফেস মেথড - ডিপেন্ডেন্সি ইনজেকশনের জন্য HttpClientFactory ইন্টিগ্রেশন - কাস্টম HttpClient সমর্থন - ApiException এবং কাস্টম এক্সেপশন ফ্যাক্টরি সহ ব্যাপক এক্সেপশন হ্যান্ডলিং - ডিক্লারেটিভ রুট টেবিল সহ Refit.Testing প্যাকেজের মাধ্যমে টেস্টিং সমর্থন সোর্স জেনারেটর পাথ প্যারামিটার, এলিয়াস এবং ফরম্যাটিং সহ কোয়েরি প্যারামিটার, বডি কন্টেন্ট, হেডার, মাল্টিপার্ট আপলোড, প্রপার্টি এবং স্ট্রিমড রেসপন্সের জন্য IAsyncEnumerable সহ বিভিন্ন রেসপন্স টাইপ সহ বেশিরভাগ রিকোয়েস্ট শেপ কভার করে। জেনারেটর যে শেপ তৈরি করতে পারে না, সেগুলির জন্য মেথডগুলি রানটাইম রিফ্লেকশন রিকোয়েস্ট বিল্ডারে ফিরে যায়। Refit অ্যানালাইজারও সরবরাহ করে যা কম্পাইল সময়ে সাধারণ ইন্টারফেস সমস্যাগুলি চিহ্নিত করে, যেমন অবৈধ রুট টেমপ্লেট, একাধিক CancellationToken প্যারামিটার এবং ভুল HeaderCollection টাইপ, যান্ত্রিক সংশোধনের জন্য কোড ফিক্স সহ। লাইব্রেরিটি একাধিক NuGet প্যাকেজ সরবরাহ করে: Refit (কোর), Refit.HttpClientFactory (DI ইন্টিগ্রেশন), Refit.Newtonsoft.Json (JSON.NET সমর্থন), Refit.Testing (টেস্ট ইউটিলিটি) এবং Refit.Reflection (পুরানো বিল্ড টুলের জন্য রানটাইম রিফ্লেকশন ফলব্যাক)।