PUT, POST এবং PATCH এর মধ্যে পার্থক্য কী? [বন্ধ]


281

HTTP প্রোটোকলে PUT, POST এবং PATCH পদ্ধতির মধ্যে পার্থক্য কী?




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

1
সমস্ত দুর্দান্ত উত্তর। আমি কেবলমাত্র আমার পার্থক্যগুলির
ট্রেন

@Triynko আর পদ্ধতি আপনি জড়িত উল্লেখ করছি সৃষ্টি , মুছে ফেলার এবং পরিমার্জন সম্পদের। এই জাতীয় ধারণাটি বিশ্রাম দেওয়ার চেয়ে ভাল আর কোনও উপায় নেই। কেন না?
Ван

উত্তর:


200

HTTP ক্রিয়ায় PUT, POST, GET, DELETE এবং প্যাচের মধ্যে পার্থক্য:

সর্বাধিক ব্যবহৃত HTTP ক্রিয়াকলাপ POST, GET, PUT, DELETE ডাটাবেসে CRUD (তৈরি করুন, পড়ুন, আপডেট করুন এবং মুছুন) অপারেশনের অনুরূপ similar আমরা এইচটিটিপি ক্রিয়াগুলি মূলধনের ক্ষেত্রে উল্লেখ করি । সুতরাং, নীচে তাদের মধ্যে তুলনা করা হয়।

  1. তৈরি করুন - পোস্ট করুন
  2. পড়ুন - GET
  3. আপডেট - পুট
  4. মোছা - মুছে ফেলুন

প্যাচ: একটি সংস্থায় আংশিক পরিবর্তন জমা দেয়। যদি আপনার কেবলমাত্র উত্সটির জন্য একটি ক্ষেত্র আপডেট করতে হয় তবে আপনি প্যাচচ পদ্ধতিটি ব্যবহার করতে পারেন।

দ্রষ্টব্য:
পোস্ট, পুট, মুছে ফেলা থেকে সামগ্রীটি পরিবর্তন করে, নীচের ইউআরএলটির জন্য ফিডলারের সাথে পরীক্ষাগুলি কেবল আপডেটগুলি নকল করে। এটি আসলে মুছতে বা পরিবর্তন করতে পারে না। সন্নিবেশ, আপডেট, মুছে ফেলা হয় কিনা তা যাচাই করার জন্য আমরা কেবল স্থিতি কোডগুলি দেখতে পারি।

ইউআরএল: http://jsonplaceholder.typicode.com/posts/

1) জিইটি:

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

ফিডলার বা পোস্টম্যানের সাথে চেক করা: প্রতিক্রিয়া যাচাই করার জন্য আমরা ফিডলারটি ব্যবহার করতে পারি। ফিডলারটি খুলুন এবং রচনা ট্যাবটি নির্বাচন করুন। নীচের মত ক্রিয়াপদ এবং url নির্দিষ্ট করুন এবং প্রতিক্রিয়া পরীক্ষা করতে এক্সিকিউট ক্লিক করুন।

ক্রিয়া: GET

url: http://jsonplaceholder.typicode.com/posts/

প্রতিক্রিয়া: আপনি প্রতিক্রিয়া হিসাবে পাবেন:

"ইউজারআইডি": 1, "আইডি": 1, "শিরোনাম": "সান্ট অট ...", "বডি": "কিয়া এট স্যাসিপিট ..."

"সুখী" (বা ত্রুটিবিহীন) পথে, জিইটি এক্সএমএল বা জেএসএনে একটি উপস্থাপনা এবং ২০০ (ঠিক আছে) এর একটি এইচটিটিপি প্রতিক্রিয়া কোড দেয়। একটি ত্রুটির ক্ষেত্রে, এটি প্রায়শই একটি 404 (ফন্ড নয়) বা 400 (খারাপ অনুরোধ) প্রদান করে।

2) পোস্ট:

POST ক্রিয়াটি বেশিরভাগ ক্ষেত্রে নতুন সংস্থান তৈরি করতে ব্যবহৃত হয় । বিশেষত, এটি অধস্তন সংস্থান তৈরি করতে ব্যবহৃত হয়। এটি হ'ল অন্য কিছু (যেমন পিতামাতার) সংস্থার অধীনস্থ।

সফল তৈরির সময়, এইচটিটিপি স্থিতি 201 ফিরিয়ে নিন, 201 এইচটিটিপি স্থিতির সাথে সদ্য নির্মিত উত্সের লিঙ্ক সহ একটি অবস্থান শিরোনাম ফিরে আসুন returning

ফিডলার বা পোস্টম্যানের সাথে চেক করা: প্রতিক্রিয়া যাচাই করার জন্য আমরা ফিডলারটি ব্যবহার করতে পারি। ফিডলারটি খুলুন এবং রচনা ট্যাবটি নির্বাচন করুন। নীচের মত ক্রিয়াপদ এবং url নির্দিষ্ট করুন এবং প্রতিক্রিয়া পরীক্ষা করতে এক্সিকিউট ক্লিক করুন।

ক্রিয়াপদ: পোস্ট

url: http://jsonplaceholder.typicode.com/posts/

অনুরোধ বডি:

ডেটা: {শিরোনাম: 'foo', বডি: 'বার', ইউজারআইডি: 1000, আইডি: 1000}

প্রতিক্রিয়া: আপনি প্রতিক্রিয়া কোডটি 201 হিসাবে পাবেন।

আমরা যদি আইডি = 1000 দিয়ে সন্নিবেশিত রেকর্ডটি চেক করতে চাই তবে একই ইউআরএল পেতে এবং ব্যবহার করতে ক্রিয়াপদটি পরিবর্তন করুন এবং এক্সিকিউট করুন ক্লিক করুন।

যেমনটি আগেই বলা হয়েছিল, উপরের ইউআরএল কেবলমাত্র (জিইটি) পড়ার অনুমতি দেয়, আমরা আপডেট হওয়া ডেটাটি বাস্তবের মধ্যে পড়তে পারি না।

3) পুট:

মূলত রিসোর্সটির সদ্য আপডেট হওয়া উপস্থাপনা সম্বলিত অনুরোধের বডি সহ একটি পরিচিত রিসোর্স ইউআরআই-তে PUT-ing করা হয়, যা বেশিরভাগ ক্ষেত্রে আপডেটের ক্ষমতার জন্য ব্যবহৃত হয় UT

ফিডলার বা পোস্টম্যানের সাথে চেক করা: প্রতিক্রিয়া যাচাই করার জন্য আমরা ফিডলারটি ব্যবহার করতে পারি। ফিডলারটি খুলুন এবং রচনা ট্যাবটি নির্বাচন করুন। নীচের মত ক্রিয়াপদ এবং url নির্দিষ্ট করুন এবং প্রতিক্রিয়া পরীক্ষা করতে এক্সিকিউট ক্লিক করুন।

ক্রিয়াপদ: পুট

url: http://jsonplaceholder.typicode.com/posts/1

অনুরোধ বডি:

ডেটা: {শিরোনাম: 'foo', বডি: 'বার', ইউজারআইডি: 1, আইডি: 1

প্রতিক্রিয়া: সফল আপডেটে এটি একটি পুট থেকে 200 (বা 204 দেহে কোনও সামগ্রী ফেরত না দিলে) ফেরত দেয়।

4) মোছা:

মুছে ফেলুন বুঝতে খুব সহজ। এটি কোনও ইউআরআই দ্বারা চিহ্নিত কোনও উত্স মুছতে ব্যবহৃত হয় ।

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

ফিডলার বা পোস্টম্যানের সাথে চেক করা: প্রতিক্রিয়া যাচাই করার জন্য আমরা ফিডলারটি ব্যবহার করতে পারি। ফিডলারটি খুলুন এবং রচনা ট্যাবটি নির্বাচন করুন। নীচের মত ক্রিয়াপদ এবং url নির্দিষ্ট করুন এবং প্রতিক্রিয়া পরীক্ষা করতে এক্সিকিউট ক্লিক করুন।

ক্রিয়াপদ: মুছে ফেলুন

url: http://jsonplaceholder.typicode.com/posts/1

প্রতিক্রিয়া: সফল মোছার পরে এটি প্রতিক্রিয়া বডি সহ HTTP স্থিতি 200 (ঠিক আছে) প্রদান করে।

PUT এবং প্যাচ-এর মধ্যে উদাহরণ

PUT

যদি আমাকে আমার প্রথম নামটি পরিবর্তন করতে হয় তবে আপডেটের জন্য পুট অনুরোধটি প্রেরণ করুন:

first "প্রথম": "নাজমুল", "শেষ": "হাসান"} সুতরাং, এখানে প্রথম নামটি আপডেট করার জন্য আমাদের আবার ডেটার সমস্ত পরামিতি প্রেরণ করতে হবে।

প্যাচ:

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

আরও তথ্যের জন্য দয়া করে নীচের লিঙ্কগুলি উল্লেখ করুন:

https://jsonplaceholder.typicode.com/

https://github.com/typicode/jsonplaceholder#how-to

PATCH এবং PUT অনুরোধের মধ্যে প্রধান পার্থক্য কী?

http://www.restapitutorial.com/lessons/httpmethods.html


62
পুট আপডেট হয় না। PUT প্রদত্ত ইউআরআইতে সত্তা তৈরি বা প্রতিস্থাপন করা হয়। এইচটিটিপি অনুসারে, পুট আদর্শবান। হ্যাঁ, এটি আপডেট করার জন্য ব্যবহার করা যেতে পারে তবে কেবল আপডেট হিসাবে চিন্তা করা সঠিক নয়।
ম্যালাদন

2
আমি সম্মতি দিচ্ছি পুট আপডেট নয়, এটি প্রতিস্থাপনের সাথে ম্যাপ করা যেতে পারে, কারণ আপনি যখন পুট পাঠান, এটি বিদ্যমান সংস্থানটিকে ওভাররাইড করে। তবে আমরা যদি প্যাচচিএইচ প্রেরণ করি তবে এটি কেবল নির্দিষ্ট এন্ট্রিগুলিকে প্রতিস্থাপন করবে।
অতুল

1
কারণ পুট তৈরিতেও ব্যবহার করা যেতে পারে, আমি নিশ্চিত না যে আপনার উত্তরটি কীভাবে ব্যবহার করা উচিত তা নির্দেশ করে?
রব পি।

1
এই উত্তর অনেক ভালো, কিন্তু প্যাচ সঙ্গে তুলনা নেই stackoverflow.com/a/630475/2391795
Vadorequest

47

পুট = সরবরাহ করা নতুন উপস্থাপনা সহ পুরো রিসোর্স প্রতিস্থাপন করুন

PATCH = প্রদত্ত মানগুলির সাথে উত্স উত্সের অংশগুলি প্রতিস্থাপন করুন | | বা উত্সের অন্যান্য অংশগুলি আপডেট করা হয়েছে যে আপনি সরবরাহ করেছেন (টাইমস্ট্যাম্পগুলি) এবং | বা সংস্থান আপডেট করে অন্যান্য সংস্থানসমূহ (সম্পর্ক)

https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1


11

নীচের সংজ্ঞাটি বাস্তব বিশ্বের উদাহরণ থেকে।

উদাহরণ ওভারভিউ
প্রতিটি ক্লায়েন্টের ডেটার জন্য, আমরা সেই ক্লায়েন্টের ডেটা খুঁজতে একটি সনাক্তকারী সংরক্ষণ করি এবং আমরা সেই শনাক্তকারীকে সেই ক্লায়েন্টের কাছে রেফারেন্সের জন্য ফেরত পাঠাব।

  1. পোস্ট

    • যদি ক্লায়েন্টটি কোনও POST পদ্ধতি ব্যবহার করে কোনও সনাক্তকারী ছাড়াই ডেটা প্রেরণ করে তবে আমরা এটি সঞ্চয় করব এবং একটি নতুন শনাক্তকারী নির্ধারণ করব।
    • যদি ক্লায়েন্ট আবার POST পদ্ধতি ব্যবহার করে কোনও সনাক্তকারী ছাড়াই একই ডেটা প্রেরণ করে , তবে আমরা এটি সংরক্ষণ করব এবং একটি নতুন সনাক্তকারী নির্ধারণ করব।
    • দ্রষ্টব্য : এখানে নকল করার অনুমতি রয়েছে
  2. PUT

    • যদি ক্লায়েন্ট কোনও শনাক্তকারীর সাথে ডেটা প্রেরণ করে তবে আমরা সেই শনাক্তকারীর উপস্থিতি কিনা তা পরীক্ষা করব। সনাক্তকারী উপস্থিত থাকলে আমরা ডেটা আপডেট করব অন্য আমরা এটি তৈরি করব এবং একটি নতুন শনাক্তকারীকে নিযুক্ত করব।
  3. তালি

    • যদি ক্লায়েন্ট কোনও শনাক্তকারীর সাথে ডেটা প্রেরণ করে তবে আমরা সেই শনাক্তকারীর উপস্থিতি কিনা তা পরীক্ষা করব। সনাক্তকারী উপস্থিত থাকলে আমরা ডেটা আপডেট করব অন্যথায় আমরা একটি ব্যতিক্রম ছুঁড়ে দেব।

দ্রষ্টব্য: পুথ পদ্ধতিতে, কোনও সনাক্তকারী না পাওয়া গেলে আমরা একটি ব্যতিক্রম ছুঁড়ে দেখছি না। তবে প্যাচ পদ্ধতিতে সনাক্তকারীটি পাওয়া না গেলে আমরা একটি ব্যতিক্রম ছুঁড়ে দিচ্ছি।

উপরে যদি আপনার কোন প্রশ্ন থাকে তবে আমাকে জানান me


8

অনুরোধ প্রকার

  • তৈরি করুন - পোস্ট করুন
  • পড়ুন - GET
  • তৈরি বা আপডেট - পুট
  • মোছা - মুছে ফেলুন
  • আপডেট - প্যাচ

জিইটি / পিইটি আদর্শ প্যাচ হ'ল প্যাচ কখনও কখনও আদর্শবান হতে পারে

আদর্শহীন কী - এর অর্থ আমরা যদি একাধিকবার ক্যোয়ারিকে গুলি করি তবে এটির ফলাফলটিকে ঘৃণা করা উচিত নয় same

get : -

সহজ পেতে। সার্ভার থেকে ডেটা পান এবং এটি ব্যবহারকারীকে দেখান

{
id:1
name:parth
email:x@x.com
}

post : -

ডাটাবেসে নতুন সংস্থান তৈরি করুন। এর অর্থ এটি নতুন ডেটা যুক্ত করে। এটি আদর্শবান নয়।

put : -

নতুন সংস্থান তৈরি করুন অন্যথায় বিদ্যমানটিতে যুক্ত করুন। আইডেম্পোটেন্ট কারণ এটি প্রতিবার একই সংস্থানটি আপডেট করবে এবং আউটপুট একই হবে। প্রাক্তন। - প্রাথমিক তথ্য

{
id:1
name:parth
email:x@x.com
}
  • পুট-লোকালহোস্ট / 1 পুট ইমেল সম্পাদন করুন: ppp@ppp.com
{
id:1
email:ppp@ppp.com
}

patch

সুতরাং এখন প্যাচ অনুরোধ প্যাচটিচ কখনও কখনও আদর্শবান হতে পারে

id:1
name:parth
email:x@x.com
}

প্যাচ নাম: ডাব্লু

{
id:1
name:w
email:x@x.com
}
এইচটিটিপি পদ্ধতি
হ্যাঁ
পোস্ট নং
হ্যাঁ
প্যাচ নং *
হ্যাঁ বিকল্প
হ্যাঁ
হ্যাঁ মুছে ফেলুন

সংস্থানসমূহ: আইডেম্পোটেন্ট - আইডেম্পোটেন্সি কী?


"কখনও কখনও" আদর্শবান মানে আসলে কী? আদর্শশক্তি নির্ধারণ করে কি?
পোলভ

7

এখানে সকলের একটি সহজ বর্ণনা:

  • পোস্ট সর্বদা একটি উত্স তৈরি করার জন্য হয় (এটির সদৃশ হয়েছিল কিনা তা নয়)
  • পুট হ'ল চেক করার জন্য যদি রিসোর্স বিদ্যমান থাকে তবে আপডেট করুন, না হলে নতুন রিসোর্স তৈরি করুন
  • প্যাচচ সর্বদা একটি উত্স আপডেট করার জন্য

5

মধ্যে মূল পার্থক্য PUT এবং প্যাচ অনুরোধ:

মনে করুন আমাদের কাছে এমন একটি সংস্থান রয়েছে যা কোনও ব্যক্তির প্রথম নাম এবং শেষ নাম ধারণ করে।

আমরা যদি প্রথম নামটি পরিবর্তন করতে চাই তবে আমরা আপডেটের জন্য একটি অনুরোধ প্রেরণ করি

{ "first": "Michael", "last": "Angelo" }

এখানে, যদিও আমরা কেবল প্রথম নামটি পরিবর্তন করছি, পুট অনুরোধের সাথে আমাদের প্রথম এবং শেষ দুটি পরামিতি প্রেরণ করতে হবে।
অন্য কথায়, সমস্ত মান পুনরায় প্রেরণ করা বাধ্যতামূলক, সম্পূর্ণ পেডলোড।

আমরা যখন কোনও প্যাচচ অনুরোধ প্রেরণ করি তবে আমরা কেবল সেই ডেটা প্রেরণ করি যা আমরা আপডেট করতে চাই। অন্য কথায়, আমরা কেবল আপডেটের জন্য প্রথম নামটি প্রেরণ করি, শেষ নামটি প্রেরণের দরকার নেই।


2

যথাযথভাবে যৌক্তিকভাবে PUT এবং প্যাচ রিচকে যথাযথভাবে প্রতিস্থাপন / আপডেট করার জন্য সম্পূর্ণ এবং আংশিক ডেটা প্রেরণ করা। যাইহোক, নীচের হিসাবে পয়েন্ট মাত্র কয়েক

  1. কখনও কখনও POST তৈরির জন্য আপডেট rt PUT হিসাবে বিবেচিত হয়
  2. এইচটিটিপি কি PATCH এ সম্পূর্ণ বনাম আংশিক ডেটা প্রেরণের জন্য আদেশগুলি / পরীক্ষা করে? অন্যথায়, PATCH PUT / POST এর মতো আপডেটের মতো হতে পারে

2

এই ভাবে চিন্তা করুন...

পোস্ট - তৈরি করুন

পুট - প্রতিস্থাপন

প্যাচ - আপডেট

GET - পড়ুন

মোছা - মুছুন


2
আমি সম্ভবত যোগ চাই এই পার্থক্য ": যদি ক্লায়েন্ট ফলে সম্পদ ঠিকানা নির্ধারণ করা সার্ভার এটা আছে যদি পোস্ট। "
Ruffin

1

সহজ ব্যাখ্যা:

পোস্ট - নতুন রেকর্ড তৈরি করুন

পুট - রেকর্ডটি উপস্থিত থাকলে অন্যটি আপডেট করুন, একটি নতুন রেকর্ড তৈরি করুন

প্যাচ - আপডেট

GET - পড়ুন

মোছা - মুছুন


আপনার কীভাবে প্রায় দু'সপ্তাহ আগে পোস্ট করা কোয়েমের উত্তরের থেকে এটি সম্পূর্ণ আলাদা ?
রাফিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.