কাস্টম ডেটা টাইপ এবং Struct ব্যবহার করা
Apache Thrift-এ Struct হল একটি কাস্টম ডেটা টাইপ যা একাধিক ভিন্ন ডেটা টাইপ ধারণ করতে পারে। Struct ব্যবহার করে আপনি একটি গ্রুপের মধ্যে সম্পর্কিত ডেটা ফিল্ডগুলি একত্রিত করতে পারেন। এটি API ডিজাইনের জন্য খুবই কার্যকর, কারণ এটি জটিল ডেটা স্ট্রাকচার তৈরি করতে সহায়ক।
Struct এর গঠন
Thrift-এ Struct তৈরি করার জন্য, আপনাকে নীচের গঠন অনুসরণ করতে হবে:
struct StructName {
1: <dataType> <fieldName>,
2: <dataType> <fieldName>,
...
}
উদাহরণস্বরূপ Struct
নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি User নামক Struct তৈরি করা হয়েছে:
namespace py example // Python namespace
// User Struct definition
struct User {
1: i32 id, // User ID
2: string name, // User name
3: string email, // User email
4: bool isActive // Active status
}
Struct ব্যবহার করা
Struct তৈরি করার পর, আপনি এটি Thrift সার্ভিসে ব্যবহার করতে পারেন। নিচে একটি সার্ভিস সংজ্ঞা দেওয়া হলো যা User Struct ব্যবহার করে:
service UserService {
User getUser(1: i32 userId), // Returns a User struct
void createUser(1: User user) // Accepts a User struct
}
উদাহরণ: Thrift IDL ফাইল
নিচে একটি সম্পূর্ণ Thrift IDL ফাইলের উদাহরণ দেওয়া হলো যেখানে User Struct এবং UserService সার্ভিস সংজ্ঞায়িত করা হয়েছে:
namespace py example // Python namespace
// User Struct definition
struct User {
1: i32 id,
2: string name,
3: string email,
4: bool isActive
}
// Service definition
service UserService {
User getUser(1: i32 userId),
void createUser(1: User user),
list<User> getAllUsers()
}
কোড জেনারেশন এবং বাস্তবায়ন
Thrift Compiler চালান:
- উপরের
example.thriftফাইল থেকে কোড জেনারেট করতে নিম্নলিখিত কমান্ডটি চালান:
সার্ভার এবং ক্লায়েন্ট তৈরি করুন:
UserServiceসার্ভিসের জন্য একটি সার্ভার এবং ক্লায়েন্ট বাস্তবায়ন করুন যাUserStruct ব্যবহার করবে।
সারসংক্ষেপ
Thrift-এ কাস্টম ডেটা টাইপ এবং Struct ব্যবহার করা খুবই সহজ এবং কার্যকর। Struct ব্যবহার করে আপনি সম্পর্কিত তথ্য একত্রিত করতে পারেন, যা API ডিজাইন এবং ডেটা বিনিময়ে সাহায্য করে। Struct এবং সার্ভিস সংজ্ঞায়িত করার মাধ্যমে আপনি ডিস্ট্রিবিউটেড সিস্টেমে কার্যকরী যোগাযোগ নিশ্চিত করতে পারেন।
Read more