REST এপিআই সেরা অনুশীলনগুলি: অনুরোধের অংশের তুলনায় ক্যোয়ারী স্ট্রিংয়ে আর্টস


126

একটি REST এপিআই এর বেশ কয়েকটি জায়গায় যুক্তি থাকতে পারে:

  1. অনুরোধের বডিটিতে - একটি জসন বডি, বা অন্য MIME টাইপের অংশ হিসাবে
  2. ইন কোয়েরি স্ট্রিং - যেমন/api/resource?p1=v1&p2=v2
  3. ইউআরএল-পাথের অংশ হিসাবে - যেমন/api/resource/v1/v2

উপরোক্ত 1 এবং 2 এর মধ্যে চয়ন করার সর্বোত্তম অনুশীলন এবং বিবেচনাগুলি কী কী?
2 বনাম 3 এখানে isাকা আছে



উপরেরটি ছাড়াও, হেডার ব্যবহার সম্পর্কে কীভাবে?
পরিবর্তনশীল

উত্তর:


40

উপরোক্ত 1 এবং 2 এর মধ্যে চয়ন করার সর্বোত্তম অনুশীলন এবং বিবেচনাগুলি কী কী?

সাধারণত সার্ভারে / থেকে আপলোড / ডাউনলোড করতে হয় এমন ডেটার জন্য কন্টেন্ট বডি ব্যবহার করা হয় এবং অনুরোধকৃত ডেটা নির্দিষ্ট করার জন্য ক্যোয়ারী প্যারামিটারগুলি ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি যখন কোনও ফাইল আপলোড করেন তখন আপনি শরীরে নাম, মাইম টাইপ ইত্যাদি নির্দিষ্ট করে থাকেন তবে আপনি যখন ফাইলগুলির তালিকা আনেন তখন আপনি কোয়েরি পরামিতিগুলি ফাইলের কিছু সম্পত্তি দ্বারা তালিকাটি ফিল্টার করতে পারেন। সাধারণভাবে, ক্যোয়ারির প্যারামিটারগুলি কোয়েরির ডেটা নয় property

অবশ্যই এটি কোনও কঠোর নিয়ম নয় - আপনি যেভাবে আপনার পক্ষে বেশি উপযুক্ত / কাজ করতে পারেন তা প্রয়োগ করতে পারেন।

আপনি কোয়েরি স্ট্রিং , বিশেষত প্রথম দুটি অনুচ্ছেদ সম্পর্কে উইকিপিডিয়া নিবন্ধটি পরীক্ষা করতে চাইতে পারেন ।


1
আপনার উপরোক্ত বিশ্লেষণের একটি যুক্তিসঙ্গত গ্রহণযোগ্যতা হ'ল আদর্শ সংস্থাগুলি অপারেশনগুলি ইউআরএল কোয়েরি স্ট্রিংগুলিতে সবচেয়ে ভাল রাখা হয় এবং সিআরইউডি কঠোরভাবে টাইপ করা প্রতিক্রিয়া সংস্থাগুলিতে রাখা হয়, যা মূলত এসওপির সুবিধা গ্রহণ করে এবং সামাজিক প্রকৌশল / ফিশিং আক্রমণগুলির খুব বেসিক ফর্মগুলি প্রতিরোধ করে
রাইস

16

আমি ধরে নিচ্ছি আপনি পোষ্ট / পুট অনুরোধের বিষয়ে কথা বলছেন। শব্দার্থগতভাবে অনুরোধের বডিটিতে আপনার পোস্ট করা বা প্যাচিং করা ডেটা থাকা উচিত।

ক্যোয়ারী স্ট্রিং, ইউআরএল (একটি ইউআরআই) এর অংশ হিসাবে আপনি কোন সংস্থান পোস্ট করছেন বা প্যাচ করছেন তা সনাক্ত করার জন্য এটি রয়েছে।

আপনি সেরা অনুশীলনের জন্য বলেছেন, নিম্নলিখিত শব্দার্থবিজ্ঞানগুলি আমার are অবশ্যই আপনার থাম্বের বিধিগুলি ব্যবহার করে কাজ করা উচিত, বিশেষত যদি ওয়েব কাঠামোটিকে আপনি প্যারামিটারগুলিতে বিমূর্ত ব্যবহার করেন ।

আপনি সবচেয়ে জানেন:

  • কিছু ওয়েব সার্ভারের ইউআরআই এর দৈর্ঘ্যের সীমা রয়েছে।
  • আপনি সিআরএল দিয়ে অনুরোধের বডিটির ভিতরে পরামিতিগুলি প্রেরণ করতে পারেন।
  • আপনি যেখানে ডেটা প্রেরণ করবেন তার ডিবাগিংয়ের উপর প্রভাব ফেলতে হবে না।

6

নীচে আমার থাম্বের নিয়মগুলি ...

শরীর কখন ব্যবহার করবেন:

  • যখন যুক্তিগুলির একটি সমতল কী না থাকে: মান কাঠামো
  • মানগুলি মানব পাঠযোগ্য না হয় যেমন সিরিয়ালযুক্ত বাইনারি ডেটা
  • যখন আপনার কাছে প্রচুর পরিমাণে তর্ক থাকে

কোয়েরি স্ট্রিংটি কখন ব্যবহার করবেন:

  • যখন আর্গুমেন্টগুলি এমন হয় যে আপনি ডিবাগ করার সময় সেগুলি দেখতে চান
  • আপনি যখন কোড বিকাশের সময় ম্যানুয়ালি কল করতে সক্ষম হবেন যেমন সাথে curl
  • যখন অনেক ওয়েব পরিষেবা জুড়ে তর্কগুলি সাধারণ হয়
  • আপনি যখন ইতিমধ্যে একটি ভিন্ন সামগ্রী-প্রকার পাঠাচ্ছেন application/octet-stream

আপনি মিশ্রণ এবং মিল করতে পারেন তা লক্ষ্য করুন - সাধারণগুলি রাখুন, যেগুলি ক্যোয়ারী স্ট্রিংয়ে ডিবাগযোগ্য হওয়া উচিত এবং বাকী সমস্তটি জসনে নিক্ষেপ করুন।


34
বিকাশের সুবিধার ভিত্তিতে আপনার এপিআই কীভাবে গঠন করবেন তা নির্বাচন করা ভাল অনুশীলন নয়।
এরিক স্টেইন

1
@ এরিকস্টাইন যেমন বলেছে, আপনি এটি পেছনের দিকে পেয়েছেন।
ড্যানমান

20
বলছি, আমি যে কারণে প্রশ্নটি জিজ্ঞাসা করেছি তা হল সঠিক উত্তর পাওয়া। এগিয়ে যান, একটি উত্তর লিখুন এবং আমি আমার ত্রুটিযুক্ত অপসারণ করব। @ এরিকস্টাইন
জোনাথন

4
@ জনাথন এপিস যেগুলি মানুষের হাতে সহজেই গ্রাস করা যায় তা প্রায় সবসময়ই ভাল অ্যাপস। KISS কে সঠিকভাবে কল করার জন্য
কুডোস

1
@ অক্ষয়হিরমঠ তিনি এই বিষয়টি উল্লেখ করছেন যে আপনি সম্ভবত শরীরে অন্য কিছু প্রেরণ করছেন, উদাহরণস্বরূপ যদি আপনি "চিত্র / জেপিইগ" এর মতো একটি বিষয়বস্তু শিরোনাম প্রেরণ করেন তবে আপনার বার্তার বডিটিতে জেপেইগ ডেটা থাকা দরকার ছিল এবং এতে অন্য কিছু অন্তর্ভুক্ত থাকতে পারে না এটি
শায়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.