যখন এটি JSON এপিআইতে আসে তখন প্রতিক্রিয়াগুলি স্থির করে নেস্টেড জেএসওএন বিষয়গুলি এড়ানো ভাল অভ্যাস?
উদাহরণ হিসাবে ধরা যাক আমাদের আইএমডিবি অনুরূপ একটি ভিডিও রয়েছে তবে ভিডিও গেমগুলির জন্য। গেম, প্ল্যাটফর্ম, ইএসআরব্র্যাটিং এবং গেমপ্ল্যাটফর্মম্যাপে একটি দম্পতি সত্তা রয়েছে যা গেমস এবং প্ল্যাটফর্মগুলির মানচিত্র করে।
বলুন আপনি অনুরোধ / গেম / 1 যা আইডি 1 এর সাথে গেমটি আনে এবং এটি প্ল্যাটফর্মগুলি এবং এসেরব্র্যাটিং নেস্টযুক্ত গেমের অবজেক্টটি ফিরিয়ে দেয়।
{
"id": 1,
"title": "Game A",
"publisher": "Publisher ABC",
"developer": "Developer DEF",
"releaseDate": "2015-01-01",
"platforms": [
{"id":1,"name":"Xbox"},
{"id":2,"name":"Playstation"}
],
"esrbRating": {
"id": 1,
"code": "E",
"name": "Everyone"
}
}
আপনি যদি জেপিএ / হাইবারনেটের মতো কিছু ব্যবহার করে থাকেন তবে এটি FETCH.EAGER এ সেট করা থাকলে স্বয়ংক্রিয়ভাবে এটি আপনার জন্য এটি করতে পারে।
অন্য বিকল্পটি হ'ল এপিআই এবং আরও শেষ পয়েন্ট যুক্ত করা।
সেক্ষেত্রে যখন / গেম / ১-কে অনুরোধ করা হয় কেবল গেমের অবজেক্ট ফিরিয়ে দেওয়া হয়।
{
"id": 1,
"title": "Game A",
"publisher": "Publisher ABC",
"developer": "Developer DEF",
"releaseDate": "2015-01-01",
}
আপনি যদি প্ল্যাটফর্মগুলি এবং / অথবা ইএসআরব্রিটিং চান তবে আপনাকে নিম্নলিখিতগুলিতে কল করতে হবে:
/ গেম / 1 / প্ল্যাটফর্ম / গেম / 1 / এসএসবি
এই পদ্ধতিটি দেখে মনে হচ্ছে এটি ক্লায়েন্টকে কী ডেটা প্রয়োজন এবং কখন তাদের প্রয়োজন হয় তার উপর নির্ভর করে এটি সার্ভারে আরও কয়েকটি কল যুক্ত করতে পারে।
আমি সর্বশেষে একবারে ভাবছিলাম যেখানে আপনার এইরকম কিছু ফিরে আসবে।
{
"id": 1,
"title": "Game A",
"publisher": "Publisher ABC",
"developer": "Developer DEF",
"releaseDate": "2015-01-01",
"platforms": ["Xbox","Playstation"]
}
তবে এটি ধরে নেয় যে তাদের আইডি বা অন্য যে কোনও তথ্য এই প্ল্যাটফর্মের সাথে সম্পর্কিত হতে পারে না।
আমি সাধারণভাবে জিজ্ঞাসা করছি আপনার এপিআই থেকে ফিরে আসা আপনার JSON অবজেক্টগুলি গঠনের সর্বোত্তম উপায় কী। আপনার যতটা সম্ভব সত্তার কাছাকাছি থাকার চেষ্টা করা উচিত, বা ডোমেন অবজেক্টস বা ডেটা ট্রান্সফার অবজেক্টগুলি ব্যবহার করা ভাল? আমি বুঝতে পারি যে পদ্ধতিগুলিতে ট্রেড অফ থাকবে, হয় ডেটা অ্যাক্সেস লেয়ারে আরও কাজ বা ক্লায়েন্টের জন্য আরও কাজ।
আমি দৃ Spring়তার জন্য জেপিএ / হাইবারনেট বা মাইবাতিস উভয়ের সাথেই এপিআইয়ের ব্যাকএন্ড প্রযুক্তি হিসাবে স্প্রিং এমভিসি ব্যবহারের সাথে সম্পর্কিত একটি উত্তর শুনতে চাই।