در پست قبلی به این موضوع پرداختیم که api چیه و قرار شد درباره get, post و ... صحبت کنیم و ببنیم چه کاربردهایی دارند.
طبق تعریف ویکی پدیا یک لایه کاربرد برای سیستم های توزیع شده است.
میشه گفت HTTP مخفف عبارت Hyper Text Transfer Protocol است که به معنی پروتکلی برای انتقال ابرمتنها میباشد.
پروتکل انتقال ابر متن یک پروتکل درخواست و پاسخ در مدل کلاینت سرور است. برای مثال یک مرورگر وب میتواند یک کلاینت و نرمافزار موجود بر روی سرویسدهندهٔ وبسایت، یک سرور باشد.
شروع این پروتکل از طرف کلاینت است که با ارسال یک درخواست HTTP به سمت سرور گفتگو را آغاز میکند. سرور بر اساس درخواست ارسالی یا منبعی مانند یک فایل را در اختیار کلاینت میگذارد یا عملیات خاصی را انجام میدهد. نتیجهٔ این عملِ سرور در بستهٔ پاسخ HTTP برای کلاینت ارسال میشود. بستهٔ پاسخ شامل اطلاعات وضعیت و احتمالاً محتویات منبع درخواست شده میباشد.
خب این تعریفی بود که ویکی پدیا ارائه کرده و میتونید برید بیشتر راجبش بخونید.
خب پس تا اینجا فهمیدیم پروتکل HTTP چیه. خب حالا میریم سراغ متدهای اصلی :
تقریبا میشه گفت این متدها جزء مهمترین و پرکاربرد ترین متدهای پروتکل HTTP است.
پیام هایی که از طریق این متد ارسال میشوند تنها شامل url هستند که میتوان یه سری متغییر نیز انتهای url اضافه و ارسال کرد. پس نتیجه این میشه که متغییر ها قابل مشاهده هستند. به عنوان مثال
http://moviesapi.ir/api/v1/movies?page=1
خب همونطور که میبینید یه متغییری به اسم page در کنار url اصلی وجود دارد، که این متغییر به سمت سرور ارسال میشه و یک عملیاتی صورت میگیرد و یک پاسخی دریافت میشود.
پیام هایی که از این طریق ارسال میشوند قابل مشاهده نیستند، یعنی متغییرهایی که ما ارسال میکنیم دیگه توی url قابل مشاهده نیستند و در غالب بسته های اطلاعات و درون پیام ارسال میشوند.
در این روش برای ایجاد تغییرات جزئی روی داده های مورد نظر روی سرور استفاده میشه.
ازین متد برای حذف کردن یک داده از روی سرور استفاده میشه.
این متد شبیه متد get هست. تفاوت این دو درخواست در این است که در پیامهای head به جای ارسال پاسخهای مربوط به URL، فقط دادههای مربوط به header سایت را ارسال میکنند. این دادهها همان اطلاعاتی هستند که در قسمت <head> یک سند html وجود دارند.
متدهای دیگری نیز وجود دارند ولی خب لزومی نبود گفته بشه چون کاربرد کمتری دارند و قرار بود مهم ترین هارو توضیح بدم ولی خب شما خودتون مطالعه کنید که بقیه متدها چه کاربردهایی دارند.
در پست بعدی به استاندارهایی که باید در طراحی یک api رعایت کرد خواهیم پرداخت.
شاد باشید خدانگهدار.