
API چیست؟
قبل از اینکه به سراغ کلید api برویم، باید بدانیم که API دقیقا چیست؟ با ذکر یک مثال api را توضیح خواهم داد تا درک این مورد برای شما میسر گردد.
فرض کنید شما وارد یک رستوران شدهاید، یک میز را انتخاب میکنید و مشغول بررسی فهرست رستوران میشوید. تمامی موارد موجود در فهرست در آشپزخانه رستوران آماده و قابل ارائه میباشد. اما درخواست شما به یک نحوی باید به اطلاع آشپزخانه رستوران برسد. تا سفارش شما آماده شده و بر روی میز شما قرار گیرد. در این مثال، پیشخدمت رستوران که سفارش را از شما دریافت کرده و به آشپزخانه رستوران ارائه میدهد. در ادامه پاسخ درخواست یا سفارش شما را از آشپزخانه دریافت کرده و به شما تحویل میدهد، یک api خواهد بود.
شما قصد میل کردن یک غذای دلخواه را دارید، بجای اینکه خودتان دستبهکار شوید و صفر تا صد آن وعده را آماده کنید. تنها با پرداخت هزینه و چند درخواست ساده در کمترین زمان غذای دلخواه شما برایتان آماده خواهد شد. در این مثال آشپزخانه را یک سرور (یا ارائه دهنده یک سرویس خاص) در نظر بگیرید.
شما که در حال سفارش غذا هستید بعنوان کلاینت (یا درخواست کننده آن سرویس) میباشید و پیشخدمت رستوران نیز api میباشد که زحمت را شما را کم کرده، درخواست شما را دریافت کرده و به سرویس دهنده موردنظر ارجاع میدهد، و نتیجه درخواست یا سفارش شما را به شما تحویل میدهد.
Web API یا وب سرویس چیست؟
حال که با واژهی api آشنا شدیم، به سراغ وب سرویس یا web api میرویم.
تفاوت web api و api در این است، که web api برای اجرا نیاز به شبکه جهانی یا اینترنت دارد.
web api را به این شکل در نظر بگیرید:
شما میخواهید امکان یا ویژگیای به پروژه برنامهنویسی خود اضافه کنید. (بعنوان مثال ارسال پیامک کد تایید یا استفاده از نقشه گوگل) وقتی ویژگی مورد نیاز شما از قبل در یک وب سرویس پیادهسازی شده و در کنار آن web api نیز ارائه شود،
دیگر نیاز نیست که شما صفر تا صد آن سرویس خاص را خودتان پیاده سازی کنید. به راحتی با استفاده از api ایجاد شده توسط شرکت ارائه دهنده سرویس، میتوانید به هدف خود برسید.
کلید api چیست؟
کلید api یا همان api token یک رشتهای از کاراکتر است که در فراخوانی سرویس به همراه مابقی پارامترهای مورد نیاز از سمت کاربر (یا کلاینت) به وب سرویس ارسال میشود. اما کلید api که به صورت عمومی در سامانههای پیامکی معرفی میشود، دقیقا در تعریف api key قرار نمیگیرد. آنچه در اصل به عنوان کلید api در سرویسهای پیامکی مورد استفاده قرار میگیرد، کلید احراز هویت میباشد.
این کلید در اصل برای شناسایی و احراز هویت کاربرانی که در حال استفاده از web api میباشند به کار برده میشود. اما کلید api برای شناسایی و احراز هویت پروژههایی (اپلیکیشنها، نرم افزارها و …) که از وب سرویس استفاده میکنند به کار گرفته میشود. بعنوان مثال با استفاده از کلید api میتوان دسترسی تلفنهای همراه که دارای سیستم عامل اندروید باشند، به وب سرویس را ممنوع کرد.
کلید احراز هویت در مرحله اول مشخص میکند که کاربر مورد نظر امکان دسترسی به وب سرویس را دارا میباشد یا خیر. پس از اینکه هویت کاربر احراز شود در مرحلهی بعدی دسترسی کاربر به متدهای وب سرویس مورد بررسی قرار خواهد گرفت.
تا به اینجای کار، ما تفاوت کلید api و کلید احراز هویت را عنوان کردیم و مشخص شد آنچه که به عنوان کلید api مورد استفاده قرار میگیرد در واقع همان کلید احراز هویت میباشد. اما از آنجایی که واژهی کلید api بصورت عمومی برای کلید احراز هویت استفاده میشود. ما نیز در این مقاله از همین واژه استفاده میکنیم.