تفاوت بین متد های http و web API
آموزش Web API
اگر خیلی ساده بخواهیم این موضوع را بررسی کنیم باید بگوییم که متدهای http برای این منظور طراحی شده اند که پاسخ یک درخواست کاربر را در قالب استاندارد صفحات html پاسخ دهند اما در web api شما به طراحی یک وب سرویس می پردازید که این وب سرویس فارغ از نوع کاربر و سیستم آن می تواند فراخوانی شود و اطلاعات لازم را دریافت و پردازش کند و نتیجه را در یک قالب برای فرستنده ارسال کند.
سوال شما از جنبه ای بسیار صیح است زیرا مایکروسافت در حال هدایت تکنولوژی خود به سمت وب سرویس می باشد به گونه ای که شما تمامی متد های خود را به شکل وب سرویس یا همان web api طراحی کنید و این در آخرین نسخه ی وب مایکروسافت با نام vNext قابل مشاهده است. از سوی دیگر نیز همین سادگی و شباهت بسیار زیاد Action های یک کنترلر ساده با متدهای web api بیانگر همین مطلب است که مایکروسافت قصد دارد مشکلات و پیچیدگی های طراحی وب سرویس را حذف کند تا نوشتن وب سرویس بسیار ساده باشد.
بسم الله الرحمن الرحیم
آموزش Web API
اگر خیلی ساده بخواهیم این موضوع را بررسی کنیم باید بگوییم که متدهای http برای این منظور طراحی شده اند که پاسخ یک درخواست کاربر را در قالب استاندارد صفحات html پاسخ دهند اما در web api شما به طراحی یک وب سرویس می پردازید که این وب سرویس فارغ از نوع کاربر و سیستم آن می تواند فراخوانی شود و اطلاعات لازم را دریافت و پردازش کند و نتیجه را در یک قالب برای فرستنده ارسال کند.
سوال شما از جنبه ای بسیار صیح است زیرا مایکروسافت در حال هدایت تکنولوژی خود به سمت وب سرویس می باشد به گونه ای که شما تمامی متد های خود را به شکل وب سرویس یا همان web api طراحی کنید و این در آخرین نسخه ی وب مایکروسافت با نام vNext قابل مشاهده است. از سوی دیگر نیز همین سادگی و شباهت بسیار زیاد Action های یک کنترلر ساده با متدهای web api بیانگر همین مطلب است که مایکروسافت قصد دارد مشکلات و پیچیدگی های طراحی وب سرویس را حذف کند تا نوشتن وب سرویس بسیار ساده باشد.
انوع متدها در web API
در web api چهار متد اصلی وجود دارد که می توان آنها را به صورت زیر معرفی کرد
سوالی که مطرح شده است تفاوت بین PUT و POST است.
تفاوت بین PUT و POST
POST
با ذکر یک مثال این مطلب را بیان می کنیم اگر قرار باشد یک مطلب جدید ایجاد کنید آدرس شما به صورت زیر باشد
POST /questions/questions125 HTTP/1.1
Host: www.example.com/
چون resource ایی برای این موضوع وجود ندارد خطای زیر اتفاق خواهد افتاد.
resource not found
برای همین منظور شما باید از دستور Post در زمان هایی استفاده کنید که resource مورد نظر شما قبلا ایجاد شده است.
PUT
طبق مثال بالا اگر قرار باشد شما دستور زیر را اجرا کنید، خطایی دریافت نخواهید کرد.
PUT /questions/questions125 HTTP/1.1
Host: www.Ably.ir/
در تهایت اگر خواستید دستوری را اجرا کنید که URL مربوط به آن قبلا ایجاد نشده است باید از دستور PUT استفاده کنید و در صورتی که URL و آدرس Resource شما وجود داشت می توانید از دستور Post برای بروز رسانی آن استفاده کنید.