ইউআরএল ক্যোয়ারী প্যারামিটারগুলির সাথে এইচটিটিপি পোস্ট - ভাল ধারণা বা না? [বন্ধ]


451

আমি এইচটিটিপি ছাড়িয়ে যাওয়ার জন্য একটি এপিআই ডিজাইন করছি এবং আমি ভাবছি যে HTTP পোষ্ট কমান্ডটি ব্যবহার করছি, তবে কেবলমাত্র ইউআরএল কোয়েরি প্যারামিটার এবং কোনও অনুরোধের অংশ নয়, এটি যাওয়ার ভাল উপায়।

বিবেচ্য বিষয়:

  • "গুড ওয়েব ডিজাইন" এর জন্য নন-আদর্শবান পদক্ষেপগুলি পোস্টের মাধ্যমে প্রেরণ করা দরকার। এটি একটি আদর্শহীন কর্ম।
  • অনুরোধের প্যারামিটারগুলি ইউআরএলে উপস্থিত থাকলে এই অ্যাপ্লিকেশনটিকে বিকাশ করা এবং ডিবাগ করা সহজ।
  • এপিআই বিস্তৃত ব্যবহারের উদ্দেশ্যে নয়।
  • দেখে মনে হচ্ছে কোনও পোষ্ট অনুরোধ না করে কোনও দেহই কিছুটা বেশি সময় নেয়, যেমন একটি Content-Length: 0শিরোনাম অবশ্যই স্পষ্টভাবে যুক্ত করা উচিত।
  • আমার কাছে এটিও মনে হয় যে কোনও দেহবিহীন পোষ্ট বেশিরভাগ বিকাশকারী এবং এইচটিটিপি ফ্রেমওয়ার্কের প্রত্যাশার তুলনায় কিছুটা বিপরীত।

অনুরোধ সংস্থার চেয়ে ইউআরএল কোয়েরির মাধ্যমে পোষ্ট অনুরোধে প্যারামিটারগুলি পাঠানোর আরও কোনও সমস্যা বা সুবিধা রয়েছে কি?

সম্পাদনা: এটি বিবেচনা করার কারণটি হ'ল অপারেশনগুলি আদর্শবান নয় এবং পুনরুদ্ধার ব্যতীত তার পার্শ্ব প্রতিক্রিয়া রয়েছে। দেখুন HTTP- র বৈশিষ্ট :

বিশেষত, কনভেনশনটি প্রতিষ্ঠিত হয়েছে যে জিইটি এবং প্রধান পদ্ধতিগুলির পুনরুদ্ধার ব্যতীত অন্য কোনও পদক্ষেপ গ্রহণের তাত্পর্য থাকা উচিত নয়। এই পদ্ধতিগুলিকে "নিরাপদ" হিসাবে বিবেচনা করা উচিত। এটি ব্যবহারকারীর এজেন্টদের অন্যান্য পদ্ধতি যেমন পোষ্ট, পুট এবং ডিলেট একটি বিশেষ উপায়ে উপস্থাপন করার অনুমতি দেয় যাতে ব্যবহারকারী সম্ভবত কোনও অনিরাপদ পদক্ষেপের জন্য অনুরোধ করা হচ্ছে এই বিষয়টি সম্পর্কে সচেতন হন।

...

পদ্ধতিগুলিতে "আইডেম্পোটেন্স" এর সম্পত্তিও থাকতে পারে (ত্রুটি বা মেয়াদোত্তীর্ণ সমস্যাগুলি বাদ দিয়ে) এন> 0 অভিন্ন অনুরোধগুলির পার্শ্ব প্রতিক্রিয়াগুলি একক অনুরোধের মতোই। GET, Head, PUT এবং মুছুন পদ্ধতিগুলি এই সম্পত্তি ভাগ করে দেয়। এছাড়াও, বিকল্পগুলি এবং ট্র্যাকের পদ্ধতিগুলির কোনও পার্শ্ব প্রতিক্রিয়া থাকতে হবে না এবং তাই সহজাতভাবে আদর্শবান ot


11
আপনি যদি শরীরে ডেটা সরবরাহ করতে যাচ্ছেন না তবে কেন POST এ কেন ব্যবহার করবেন?
সানি মাইলেনভ

114
কারণ অপারেশন আদর্শবান নয়।
স্টিভেন হুইগ

20
@ জ্যারেড, লক্ষ্য করুন যে 2.5 বছর আগে এই প্রশ্নটিতে "REST" শব্দটি উপস্থিত নেই। :) আইডিএমপিটেন্স সম্পর্কে এইচটিটিপি স্পেস-অফ-মাসের আর্কিটেকচারটি ওয়েব পরিষেবাদির জন্য নির্বিশেষে প্রযোজ্য। ভাগ্যক্রমে, এই এপিআই যে সিস্টেমটির জন্য প্রক্সি তৈরি করা হয়েছিল সেটি যেভাবেই অচল করে দেওয়া হয়েছে।
স্টিভেন হুইগ

5
কারণ সার্ভার লগগুলি POST পরামিতি রেকর্ড করে না, তবে তারা কোয়েরি স্ট্রিং রেকর্ড করে। ব্রাউজারে এটি ব্যবহার না করে অনুরোধের ধারাবাহিকতা চালানো আরও সহজ এবং তারপরে ক্লিক করার চেয়ে ট্র্যাসব্যাকটি দেখুন। এছাড়াও এপিআই ব্রাউজার-থেকে-সার্ভার নয়, বরং সার্ভার-টু-সার্ভার ছিল। সবচেয়ে বড় কথা, পুরো ব্যাপারটি যাইহোক ক্যানড করা হয়েছিল। :)
স্টিভেন হুইগ

13
অন্য কারও জন্য যারা জানেন না আদর্শবান মানে: | পুনঃপ্রতিদ্বন্দ্বী
ক্রিস্টোফার গ্রিগ 3

উত্তর:


259

যদি আপনার ক্রিয়াটি আদর্শবান না হয় তবে আপনার অবশ্যই ব্যবহার করা উচিত POST। যদি আপনি এটি না করেন তবে আপনি কেবল লাইনেই সমস্যা চাইছেন। GET, PUTএবং DELETEপদ্ধতি প্রয়োজনীয় idempotent যাবে। আপনার অ্যাপ্লিকেশনটিতে কী ঘটবে তা কল্পনা করুন যদি ক্লায়েন্টটি GETআপনার পরিষেবার জন্য প্রতিটি সম্ভাব্য অনুরোধ প্রাক-আনয়ন করা হয় - এটির ফলে যদি ক্লায়েন্টের পার্শ্ব প্রতিক্রিয়া দৃশ্যমান হয় তবে কিছু ভুল।

আমি সম্মত হলাম যে POSTকোনও ক্যোরি স্ট্রিং সহ তবে কোনও দেহ ছাড়াই প্রেরণ করা বিজোড় বলে মনে হচ্ছে তবে আমি মনে করি এটি কিছু পরিস্থিতিতে উপযুক্ত হতে পারে।

বর্তমান অনুরোধের পরিধি সীমাবদ্ধ করতে সংস্থান হিসাবে কমান্ড হিসাবে একটি URL এর ক্যোয়ারী অংশটি ভাবেন। সাধারণত, ক্যোয়ারি স্ট্রিংগুলি একটি GETঅনুরোধ বাছাই করতে বা ফিল্টার করতে ব্যবহৃত হয় (যেমন ?page=1&sort=title) তবে আমি মনে করি এটির সুযোগটিও POSTসীমিত করার জন্য এটি বোধগম্য হয়েছে (সম্ভবতঃ ?action=delete&id=5)।


4
আমি এই বিশেষ ক্ষেত্রেটির জন্য এই উত্তরটি নির্বাচন করেছি, তবে আমি মনে করি যে আর বেমরোজের যুক্তি পাবলিক এপিআইয়ের জন্য বাধ্যতামূলক।
স্টিভেন হুইগ

4
আমি মনে করি না যে তার উত্তরটি কঠোরভাবে সঠিক। HTML পৃষ্ঠাটি যখন ক্লায়েন্টকে প্রেরণ করা হয় আপনি যদি আপনার ফর্ম পোস্টের জন্য ইউআরএল প্যারামিটারগুলি জানেন তবে আপনি সেই URL প্যারামিটারগুলি ফর্মটির ক্রিয়া বৈশিষ্ট্যে টেক করতে পারেন, অন্যথায় জাভাস্ক্রিপ্ট ফর্মটি জমা দেওয়ার সময় URL প্যারামিটার সেট করতে পারে।
ডন ম্যাককৈ

3
ক্যোয়ারী প্যারামিটার সহ কোনও ইউআরএলতে কোনও এক্সএমএল ফাইলের পোস্ট সম্পর্কে কীভাবে? এটা কি সম্ভব?
ওপেন কোডারএক্স

3
আর একটি উদাহরণ: অনুরোধের ডেটাটি এইচটিপি সত্তায় থাকতে পারে, যখন প্রতিক্রিয়াটির অনুরোধ করা ফর্ম্যাটটি কোয়েরি প্যারামিটারে ( /action?response_format=json)
rd

3
+1 আজ কিছু শিখেছে। মুছে ফেলার আদর্শবান হওয়ার প্রযুক্তি রয়েছে। যদি বস্তুটি আসলে মুছে ফেলা হয় তবে আপনি খুঁজে পাওয়া যায় নি 404 সুতরাং সার্ভারের একই অবস্থা থাকবে তবে প্রতিক্রিয়া আলাদা হবে। : গরুর ছবি দেখতে restapitutorial.com/lessons/idempotency.html
থেকে JPK

131

প্রত্যেকেই ঠিক: নন-আদর্শবান অনুরোধের জন্য POST এর সাথে লেগে থাকুন।

উভয়ই ইউআরআই ক্যোয়ারী স্ট্রিং এবং অনুরোধ সামগ্রীর ব্যবহার সম্পর্কে কী? আচ্ছা এটি বৈধ এইচটিটিপি (নোট 1 দেখুন), তবে কেন নয় ?!

এটিও পুরোপুরি যৌক্তিক: ইউআরএলগুলি, তাদের ক্যোয়ারী স্ট্রিং অংশ সহ, লোকেশন সংস্থানগুলির জন্য। যদিও এইচটিটিপি পদ্ধতি ক্রিয়াগুলি (পোষ্ট - এবং এটির optionচ্ছিক অনুরোধ সামগ্রী) নির্দিষ্টকরণের ক্রিয়াগুলির জন্য, বা সংস্থানগুলির সাথে কী করা উচিত । এগুলি অরথোগোনাল উদ্বেগ হওয়া উচিত। (তবে, কন্টেন্ট টাইপ = অ্যাপ্লিকেশন / এক্স-এক্স-www-ফর্ম-ইউরেলকোডের বিশেষ ক্ষেত্রে এগুলি সুন্দরভাবে অরথোগোনাল উদ্বেগ নয়, নীচের নোট 2 দেখুন))

দ্রষ্টব্য 1: এইচটিটিপি স্পেসিফিকেশন (1.1) পোস্ট করে না যে কোয়েরি পরামিতি এবং সামগ্রী একটি HTTP সার্ভারের জন্য পারস্পরিক একচেটিয়া যা পোষ্ট বা পুট অনুরোধগুলি গ্রহণ করে। সুতরাং যে কোনও সার্ভার উভয়ই মেনে নিতে বিনামূল্যে। উদাহরণস্বরূপ, আপনি যদি সার্ভারটি লিখেন তবে উভয়কে গ্রহণ করতে বাধা দেওয়ার কোনও কিছুই নেই (সম্ভবত একটি অবিচ্ছিন্ন কাঠামো বাদে)। সাধারণত, সার্ভারটি যা যা নিয়ম চায় সে অনুযায়ী কোয়েরি স্ট্রিংয়ের ব্যাখ্যা করতে পারে। এমনকি এটি শর্তাধীন যুক্তি দিয়ে তাদের ব্যাখ্যা করতে পারে যা অন্যান্য শিরোনামকে যেমন সামগ্রী-প্রকারকেও বোঝায়, যা নোট 2:

দ্রষ্টব্য 2: যদি কোনও ওয়েব ব্রাউজারটি প্রাথমিকভাবে লোকেরা আপনার ওয়েব অ্যাপ্লিকেশনটিতে অ্যাক্সেস করছে এবং অ্যাপ্লিকেশন / x-www-form-urlencoded বিষয়বস্তুর ধরণ যা তারা পোস্ট করছে, তবে আপনাকে সেই বিষয়বস্তুর ধরণের নিয়ম অনুসরণ করা উচিত । এবং অ্যাপ্লিকেশন / x-www-form-urlencoded এর নিয়মগুলি অনেক বেশি সুনির্দিষ্ট (এবং প্রকৃতপক্ষে, অস্বাভাবিক): এই ক্ষেত্রে আপনাকে অবশ্যই ইউআরআইকে প্যারামিটারগুলির একটি সেট হিসাবে ব্যাখ্যা করতে হবে, কোনও সংস্থান স্থান নয়। [এটি পাওয়ারলর্ড উত্থাপিত একই কার্যকারিতার পয়েন্ট; আপনার সার্ভারে পোস্ট করা সামগ্রীতে ওয়েব ফর্মগুলি ব্যবহার করা কঠিন হতে পারে। শুধু একটু অন্যরকম ব্যাখ্যা করা হয়েছে।]

নোট 3: কোয়েরি স্ট্রিংগুলি মূলত কীসের জন্য? আরএফসি 3986 টি এইচটিটিপি কোয়েরি স্ট্রিংগুলিকে একটি ইউআরআই অংশ হিসাবে সংজ্ঞায়িত করে যা কোনও সংস্থান চিহ্নিত করার অ -ক্রমিক পদ্ধতি হিসাবে কাজ করে।

যদি এই প্রশ্নটি জিজ্ঞাসা করে পাঠকরা ভাল বলতে চান আধ্যাত্মিক আর্কিটেকচারটি কী: RESTful আর্কিটেকচার প্যাটার্নটির কোনও নির্দিষ্ট উপায়ে কাজ করার জন্য ইউআরআই স্কিমগুলির প্রয়োজন হয় না। বিশ্রামের আর্কিটেকচারটি সিস্টেমের অন্যান্য বৈশিষ্ট্যগুলির সাথে নিজেকে উদ্বিগ্ন করে, যেমন সম্পদের ক্যাশেবিলিটি, সম্পদের নিজস্ব নকশা (তাদের আচরণ, ক্ষমতা এবং উপস্থাপনা) এবং আদর্শদর্শন সন্তুষ্ট কিনা। বা অন্য কথায়, এমন একটি নকশা অর্জন করা যা এইচটিটিপি প্রোটোকল এবং এটির এইচটিটিপি পদ্ধতি ক্রিয়াগুলির সেটগুলির সাথে অত্যন্ত উপযুক্ত। :-) (অন্য কথায়, রিসোর্টফুল আর্কিটেকচারটি কীভাবে সংস্থানগুলি অবস্থিত তা নিয়ে খুব অনুমানমূলক নয় ))

চূড়ান্ত দ্রষ্টব্য: কখনও কখনও ক্যোয়ারী প্যারামিটারগুলি এখনও অন্য জিনিসের জন্য ব্যবহার করা হয়, যা না কোনও সংস্থানকরণের সংস্থান এবং না এনকোডিং সামগ্রী। 'PUT = true' বা 'POST = true' এর মতো কোনও ক্যোয়ারী প্যারামিটার কখনও দেখেছেন? এগুলি ব্রাউজারগুলির জন্য কাজের ক্ষেত্র যা আপনাকে PUT এবং POST পদ্ধতি ব্যবহার করতে দেয় না। এই জাতীয় প্যারামিটারগুলি ইউআরএল কোয়েরি স্ট্রিংয়ের অংশ হিসাবে দেখা হচ্ছে (তারে), আমি যুক্তি দিয়েছি যে তারা স্পিরিটে ইউআরএল এর প্রশ্নের অংশ নয় ।


66

আপনি কারণ চান? এখানে একটি:

জিইটি এবং পোষ্টের মিশ্রণ ব্যবহার করে এমন কোনও পৃষ্ঠায় একটি অনুরোধ প্রেরণের জন্য একটি ওয়েব ফর্ম ব্যবহার করা যাবে না। আপনি যদি ফর্মের পদ্ধতিটি জিইটি-তে সেট করেন তবে সমস্ত পরামিতি ক্যোরি স্ট্রিংয়ে রয়েছে। আপনি যদি ফর্মের পদ্ধতিটি পোষ্টে সেট করেন তবে সমস্ত পরামিতিগুলি অনুরোধের অংশে রয়েছে।

উত্স: এইচটিএমএল 4.01 স্ট্যান্ডার্ড, বিভাগ 17.13 ফর্ম জমা


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

9
পোষ্টের সাথে জিইটি মিশ্রিত করা সত্যিই একটি খারাপ ধারণা - মারাত্মকভাবে এইচটিটিপি ভেঙে দেয় এবং কোনও ভাল কারণ নেই।
এহেলকে

6
আপনি যে লিঙ্কটি সংযুক্ত করেছেন
গ্যারেথ

40
ঠিক আছে, তবে পদ্ধতির বৈশিষ্ট্যটি কেবলমাত্র অনুরোধের মধ্যে "ফর্ম ডেটা সেট" অন্তর্ভুক্ত করার সাথে সংজ্ঞা দেয়। যখন methodপোস্টটি হয়, তখন ফর্মের ইউআরআই পরিবর্তন করার কোনও উল্লেখ নেই action। এবং যে কোনও ইউআরআই অবশ্যই ইতিমধ্যে একটি কোয়েরি স্ট্রিং অংশ থাকতে পারে।
গ্যারেথ

16
@ পাওয়ারলর্ড এটি ঠিক ভুল। উদাহরণস্বরূপ একটি ক্রিয়া সহ পোষ্টে একটি ফর্ম স্থাপন করার চেষ্টা করুন। /Books?bookCode=1234। ওয়েব সার্ভার POST ফর্ম vars এবং একটি কোয়েরি স্ট্রিং পাবেন।
Jez

9

একটি প্রোগ্রামেটিক দৃষ্টিকোণ থেকে, ক্লায়েন্টের জন্য এটি প্যারামিটারগুলি প্যাকেজিং করে তা ইউআরএল এ যুক্ত করে এবং একটি পোষ্ট বনাম একটি জিইটি পরিচালনা করে। সার্ভার-সাইডে, এটি পোস্ট বাইটের পরিবর্তে ক্যোরিস্ট্রিং থেকে ইনবাউন্ড প্যারামিটারগুলি মূল্যায়ন করছে। মূলত, এটি একটি ধোয়া।

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

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


8

আমি মনে করি পোস্টের বডিতে থাকা সামগ্রীর ব্যয়ভারকে সীমাবদ্ধ রেখে ইউআরএলটিতে সংস্থানটি চিহ্নিত করে এমন কোয়েরি যুক্তি থাকা এখনও যথেষ্ট বিশ্রামের হতে পারে। এটি "আমি কী পাঠাচ্ছি" এর বিবেচনাগুলি পৃথক করে বলে মনে হবে? বনাম "আমি কার কাছে এটি পাঠাচ্ছি?"।


5
প্রশ্নটি আরএসইটি সম্পর্কে ছিল না।
স্টিভেন হুইগ

3
@ ব্যবহারকারী 359996 সমস্ত এইচটিটিপি এপিআইগুলি শান্ত নয়। আসলে, বেশিরভাগ এপিআই যা দাবি করে যে আসলে তা নয়। এছাড়াও, মজাদার ঘটনা, REST কেবলমাত্র HTTP নয়।
আলেক মেভ

4

বিশ্রাম শিবির কিছু নির্দেশক নীতিগুলি যে আমরা পথ আমরা ব্যবহার HTTP- র ক্রিয়া প্রমিত করতে ব্যবহার করতে পারেন না। আপনি যেমন করছেন তখনই RESTful API তৈরি করার সময় এটি সহায়ক।

সংক্ষেপে: জিইটি কেবল পঠনযোগ্য হওয়া উচিত সার্ভারের অবস্থাতে কোনও প্রভাব ফেলবে না। POST সার্ভারে একটি সংস্থান তৈরি করতে ব্যবহৃত হয়। PUT আপডেট করা বা সংস্থান তৈরি করতে ব্যবহৃত হয়। DELETE একটি উত্স মুছতে ব্যবহৃত হয়।

অন্য কথায়, যদি আপনার এপিআই ক্রিয়াটি সার্ভারের স্থিতি পরিবর্তন করে তবে REST আমাদেরকে POST / PUT / DELETE ব্যবহার করার পরামর্শ দেয় তবে GET নয়।

ব্যবহারকারী এজেন্টরা সাধারণত বুঝতে পারে যে একাধিক পোষ্ট করা খারাপ এবং এটির বিরুদ্ধে সতর্ক করবে, কারণ পোষ্টের অভিপ্রায়টি সার্ভারের অবস্থার পরিবর্তন করা (যেমন: চেকআউটে পণ্যগুলির জন্য অর্থ প্রদান), এবং আপনি সম্ভবত এটি দুবার করতে চান না!

একটি জিইটি এর সাথে তুলনা করুন যা আপনি নিজের পছন্দ মতো (আদর্শবান) প্রায়শই করতে পারেন।


13
আরআরএসটি ক্যাম্পটি বলেছে যে এইচটিটিপি অনুচ্ছেদে সংজ্ঞায়িত হিসাবে আপনি HTTP ব্যবহার করবেন। অর্থাত্ আরএফসি 2616 আরও কিছু নয়, কিছুও কম নয়।
ড্যারেল মিলার

1
@ ড্যারেল আইবিএম / ডেভেলপ ওয়ার্কস / ওয়েবেসার্ভিস / লাইবারি / ডাব্লু- রেফারেন্স উল্লেখ করে : আরইএসটি বিকাশকারীদের এইচটিটিপি পদ্ধতিগুলি স্পষ্টভাবে এবং এমনভাবে ব্যবহার করতে বলে যা প্রোটোকলের সংজ্ঞার সাথে সামঞ্জস্যপূর্ণ। এই বেসিক আরএসটি নকশা নীতিটি তৈরি করা, পড়া, আপডেট করা এবং মুছে ফেলা (সিআরইউডি) অপারেশন এবং এইচটিটিপি পদ্ধতিগুলির মধ্যে একের মধ্যে একের ম্যাপিংকে প্রতিষ্ঠিত করে। এই ম্যাপিং অনুসারে: সার্ভারে একটি সংস্থান তৈরি করতে, পোস্ট ব্যবহার করুন। একটি উত্স পুনরুদ্ধার করতে, জিইটি ব্যবহার করুন। কোনও উত্সের স্থিতি পরিবর্তন করতে বা এটি আপডেট করতে PUT ব্যবহার করুন। কোনও উত্স অপসারণ বা মুছতে, মুছুন ব্যবহার করুন use
সিল

5
দুঃখিত তবে এটি কেবল সাধারণ ভুল। REST এর জন্য একটি অভিন্ন ইন্টারফেসের সম্মতি প্রয়োজন requires আপনি যদি HTTP ব্যবহার করছেন তবে সেই অভিন্ন ইন্টারফেসটি আরএফসি 2616 দ্বারা আংশিকভাবে সংজ্ঞায়িত করা হয়েছে that সেই অনুমান অনুসারে, তৈরি, পড়ুন, আপডেট করুন এবং মুছুন এবং এইচটিটিপি পদ্ধতিগুলির মধ্যে ওয়ান-টু-ও-ম্যাপিং নেই।
ড্যারেল মিলার

3
CRUD এ পড়তে এবং মুছতে ম্যাপটি বেশ ভালভাবে মুছে ফেলুন এবং মুছে ফেলুন, তবে আপডেট এবং তৈরির জন্য PUT / POST ব্যবহার করা ততটা সোজা-ফরোয়ার্ড নয়। দেখুন stackoverflow.com/questions/630453/put-vs-post-in-rest
dcstraw

5
6 বছর পরে এটির দিকে ফিরে তাকানো এবং যখন প্রশ্নটি 100 ডলার বার দেখা হয়েছে, তখন আমি এটি একটি ছোট আপডেটে রাখার যোগ্য মনে করি। ফিল্ডিংয়ের আরইএসটি ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ) সংজ্ঞা অনুসারে ড্যারেল সঠিক - এটি সিআরইউডিতে এইচটিটিপি ক্রিয়াগুলি ম্যাপ করার কোনও উল্লেখ নেই। আইবিএম এর বিকাশকারীদের পরামর্শ (উপরে মন্তব্যে লিঙ্ক) RESTful এপিআই এর বাস্তবায়নের সাধারণ অনুশীলনকে প্রতিফলিত করে, ফিল্ডিংয়ের আরএসটি-র সংজ্ঞা নয়।
saille

-13

আমি সম্মতি জানাই - আপনি যদি কেবলমাত্র ইউআরএলটিতে ডেটা পাস করেন এবং শরীরে না থাকেন তবে জিইটি অনুরোধটি ব্যবহার করা সম্ভবত নিরাপদ। পুরো পোষ্ট + জিইটি ধারণাটিতে কিছু অতিরিক্ত দেখার জন্য এই একই প্রশ্নটি দেখুন ।


17
যদি অপারেশনের পার্শ্ব প্রতিক্রিয়া থাকে তবে জেট পদ্ধতিটি ব্যবহার করা অবশ্যই 'নিরাপদ' নয় কারণ ব্রাউজারটি ধরে নেয় যে সমস্ত জিইটি আদর্শবান ot
dcstraw

অনুসন্ধান ইঞ্জিনগুলি এটিকে একটি দুঃস্বপ্নে রূপান্তরিত করে, যেহেতু গুগল জিইটি অনুরোধের সাথে সমস্ত লিঙ্ক নিরাপদে "ক্লিক" করবে, তবে সমস্ত কিছু বাদ দেবে। কোনও পরিষেবা ছেড়ে যাওয়া এত নিরাপদ নয় যে কোনও নিরীহ ক্রলার দুর্ঘটনাক্রমে ডাটাবেস মুছতে পারে।
আলেজান্দ্রো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.