سلام
سالها قبل زمانی که میخواستم تازه درباره API یاد بگیرم، هر سایتی رو چک میکردم تقریبا یه توضیح تکراری درباره API داده بودن. این توضیحات هیچ وقت برای من واضح نبود. اما API چیزی بود که میدونستم بهش نیاز دارم. پس باید یادش میگرفتم. امیدوارم این مقاله توی درک و آشنایی با API بهتون کمک کنه.
آشنایی با API
این توضیحی هست که برای API برای افرادی مثل من توضیحات بقیه سایتها به کلشون نمیره:
در حقیقت API یه روش برای تحویل اطلاعات به بقیه برنامه نویسها هست. این اطلاعات از طریق URL ها قابل دسترسی هستن. نحوه نمایش اطلاعات به هر صورتی میتونه باشه اما استفاده از JSON متداول تر هست.
مثال:
معمولا اپهای موبایلی بخش لاگین دارن، از طرف اپ برای یه URL درخواست ارسال میشه و سمت سرور این درخواست رو پردازش میکنه و چک میکنه که کاربر وجود داره یا نه.
انواع API وجود داره که بعضیهاشون تا جایی که اطلاع دارم اینها هستن: RESTful، SOAP، GraphQL و… که درباره هر کدوم میتونید جداگانه سرچ کنید. خودم بیشتر از همه REST رو بلدم و مطالبم در این باره هست.
آشنایی با مفاهیم API و اصطلاحات آن
بحث API مفاهیمی داره که به آشنایی با اونها نیاز دارید:
Base URL:
این آدرس اصلی بخش API پروژه هست که از این به بعد Routeهای API توش ساخته میشن. مثال:
https://mjkhajeh.ir/api
پ.ن: این آدرس وجود نداره و برای مثال هست.
Route:
اینها بخش های مختلف و مسیرهایی هستن که APIهای ما رو به بخش های مختلف تقسیم میکنن که هر کدوم کار خاصی انجام بدن. مثلا یکیشون بعضیهاشون برای بررسی عضویت و ورود هستن، بعضیهاشون برای محصولات، بعضیهاشون برای مقالات و… . توی آدرس دهیها دیگه بخش Base URL نوشته نمیشه. مثال:
- /user
- /products
- /product/{id}
- …
Method:
متدها همون متدهای HTTP هستن(CRUD):
- POST(Create)
- GET(Read)
- PUT(Update/Replace)
- PATCH(Update)
- DELETE(Delete)
- …

Query & Body Params:
مقادیری هستن که از طرف کلاینت(مثلا همون اپ موبایل) به سمت سرور و اون آدرس ارسال میشه. این مقادیر همون چیزای هستن که میخوایم پردازش بشن. مثلا Username و Password که موقع ورود ارسال میکنیم که چک بشه.
HTTP Response Code:
همون کد سه رقمی HTTP که احتمالا آشنایی دارید(اگه ندارید سرچ کنید: HTTP response codes) و زمانی که میخواید جواب این پردازش رو به درخواست بفرستید باید یکی از کدها هم همراهش ارسال کنید. مثلا ارور ۴۰۴ معروفترینشون هست. یا ۲۰۰ که معنی OK میده و زمانی که هیچ خطایی نباشه این کد رو میفرستیم.
پروسه ارسال درخواست و دریافت پاسخ
وقتی یک درخواست برای API ارسال میکنیم به این صورت میشه که از طریق متد انتخابیمون(POST و GET و…) برای اون URL پارامترهامون ارسال میشه(ممکنه پارامتری هم نداشته باشیم) بعد از پردازش کارها و نتیجه از بصورت JSON به همراه یک HTTP Status Code توی صفحه نمایش داده میشه. حالا اینکه با این اطلاعات قراره چه اتفاقی بیوفته دیگه با کلاینت هست.
امنیت
توی API بحثهای امنیتی مختلفی وجود داره. خیلی از هکها و نفوذهایی که صورت میگیره از طریق API هست. امنیت API بحث ساده اما پر از نکات هست که باید رعایت بشه. هر نکتهای رعایت نشه خودش میتونه به یه آسیب پذیری تبدیل بشه و امنیت نه تنها سایت، بلکه امنیت کاربران و کل پروژه رو به خطر بندازه.
اگر که الان هم درست و حسابی درک نکردید API چیه اصلا نگران نباشید. یکی دو مقاله بعد که درباره ساخت و تست API توضیح دادم به خوبی متوجه میشید چی به چیه. همچنین ممکنه این تصاویر توی درک REST بهتون کمک کنه:


لینکهای مفیدی که میتونید استفاده کنید: