আমি একটি REST এপিআই তৈরির প্রগতিতে রয়েছি এবং বর্তমানে আমি নিম্নলিখিত সমস্যার মুখোমুখি হয়েছি:
Foo
প্রথম সম্পদ। CRUD অপারেশনগুলি এর মাধ্যমে প্রয়োগ করা যেতে পারে/foo/
।Bar
দ্বিতীয় সম্পদ। CRUD অপারেশনগুলি এর মাধ্যমে প্রয়োগ করা যেতে পারে/bar/
।- প্রত্যেকটি
Foo
শূন্য বা একটির সাথে যুক্তBar
। আমি কেনBar
একটি সাবসোর্স হিসাবে বিবেচনা করি নাFoo
কারণ একইBar
উদাহরণটি একাধিক এর মধ্যে ভাগ করা যায়Foo
। সুতরাং আমি অনুভব করেছি যে এটির পরিবর্তে একটি স্বতন্ত্র ইউআরআইয়ের মাধ্যমে এটি অ্যাক্সেস করা ভাল/foo/[id]/bar
।
আমার সমস্যাটি হ'ল উল্লেখযোগ্য পরিমাণের ক্ষেত্রে, ক্লায়েন্টরা Foo
উদাহরণ জিজ্ঞাসা করে তারাও সংশ্লিষ্টদের সাথে আগ্রহীBar
দৃষ্টিতে । বর্তমানে, এর অর্থ হ'ল তাদের একটির পরিবর্তে দুটি প্রশ্নের সম্পাদন করতে হবে। আমি এমন একটি উপায়ে প্রবর্তন করতে চাই যা একটি একক ক্যোয়ারী সহ উভয় অবজেক্টকে পেতে দেয়, তবে কীভাবে এপিআইয়ের মডেল করবেন তা আমি জানি না। আমি এ পর্যন্ত কী নিয়ে এসেছি:
- আমি একটি ক্যোয়ারী পরামিতি এই অনুরূপ পরিচয় করিয়ে পারে:
/foo/[id]?include_bar=true
। এই পদ্ধতির সমস্যাটি হ'ল প্রতিক্রিয়াটির রিসোর্স রিপ্রেজেন্টেশন (যেমন জেএসএন কাঠামো) দেখতে আলাদা দেখতে হবে (যেমন{ foo: ..., bar: ... }
কেবল একটি সিরিয়ালযুক্ত পরিবর্তে একটি ধারকFoo
), যাFoo
সংস্থানটির শেষ দিকটিকে "ভিন্নধারা" করে তোলে । আমি মনে করি না এটি একটি ভাল জিনিস। জিজ্ঞাসা যখন/foo
, ক্লায়েন্টদের কোয়েরি পরামিতি নির্বিশেষে সর্বদা একই উত্স উপস্থাপনা (কাঠামো) পাওয়া উচিত। - আরেকটি ধারণা হ'ল একটি নতুন পঠনযোগ্য শেষ পয়েন্ট উপস্থাপন করা, যেমন
/fooandbar/[foo-id]
। এই ক্ষেত্রে, কোনও প্রতিনিধিত্বের মতো ফিরিয়ে{ foo: ..., bar: ... }
আনার কোনও সমস্যা নেই , কারণ এটি কেবলমাত্র উত্সটির "আধিকারিক" প্রতিনিধিত্বfooandbar
করে। তবে, আমি জানি না যে এইরকম সহায়ক সহায়ক পয়েন্টটি আসলেই বিশ্রামযুক্ত কিনা (এ কারণেই আমি প্রশ্নের শিরোনামে "পারি" লিখেছিলাম। অবশ্যই এটি প্রযুক্তিগতভাবে সম্ভব, তবে আমি জানি না এটি ভাল ধারণা কিনা)।
আপনি কি মনে করেন? অন্য কোন সম্ভাবনা আছে?
Bar
সাথে যুক্ত না হয়ে থাকতে পারে না Foo
। যাইহোক, আমি উপরে লিখেছি, এটি একাধিক Foo
গুলি একই ভাগ করা সম্ভব Bar
। Foo
কোনও Bar
যুক্ত ছাড়া কোনও তৈরি করা সম্ভব হওয়া উচিত , তাই আমি মনে করি না যে Bar
পিতামাতার মতো আচরণ করা উচিত।