API ها مانند لیست های مواد غذایی هستند: یک راهنمای سرگرم کننده برای طراحی API

این وبلاگ بخشی از من است طراحی سیستم سریال ، جایی که من مفاهیم کلیدی را به روشی ساده و عملی تجزیه می کنم.
امروز ، ما کاوش خواهیم کرد API (رابط های برنامه نویسی برنامه)– یک بخش اساسی از توسعه نرم افزار مدرن.
در نگاه اول ، طراحی API ممکن است ساده به نظر برسد ، اما هرچه عمیق تر شیر می شوید ، می فهمید که این پیچیده تر از آنچه به نظر می رسد. قبل از اینکه دست به دست هم دهیم ، ابتدا اصول اولیه API را درک کنیم.
💻 API چیست؟
در API (رابط برنامه نویسی برنامه) به برنامه های مختلف اجازه می دهد تا با تعریف مجموعه ای از قوانین برای تعامل ، با یکدیگر ارتباط برقرار کنند.
بیایید سعی کنیم API را با یک قیاس دنیای واقعی درک کنیم: یک لیست مواد غذایی.
تصور کنید از مادرتان سؤال می کنید ، *”چه چیزی را باید از فروشگاه مواد غذایی خریداری کنم؟”
- او به شما می دهد لیست مواد غذایی– مجموعه ای از دستورالعمل های ساختاری که آنچه را که باید بدست آورید مشخص می کند.
به این فکر کنید لیست به عنوان API
- شما (مشتری) اطلاعات درخواست کنید
- مادر شما (سرور) پاسخ ساختاری را ارائه می دهد.
- لیست مواد غذایی (API) به عنوان واسطه ای عمل می کند که ارتباطات روشنی را تضمین می کند.
اکنون در دنیای دیجیتال ، هنگامی که شما X (که قبلاً توییتر بود) را مرور می کنید ، یک API برای فید شما توییت می کند. هنگامی که یک برنامه تحویل غذا را بررسی می کنید ، یک API لیست رستوران ها را بازیابی می کند.
🔥 چرا ما به API احتیاج داریم؟
API ارتباط بین مشتری (مرورگر ، برنامه تلفن همراه) و سرور را ساده می کند. هرچه برنامه ها بیشتر به داده محور تبدیل می شوند ، API ها به مدیریت داده ها کمک می کنند:
-
واکشی ، ارسال و به روزرسانی داده ها به طور کارآمد.
-
اجرای تعامل ساختاری بین خدمات مختلف.
-
حمایت از الگوهای معماری مانند میکروسرویس، جایی که اجزای مختلف از طریق API در تعامل هستند.
در توسعه ، API ها اغلب به عنوان نامیده می شوند خدمات یا قرارداد، با تأکید بر نقش آنها در اتصال جبهه وت پشتبشر
📚 شیرجه عمیق
اکنون ، ما می دانیم API چیست و چرا به آن احتیاج داریم. بیایید سعی کنیم آن را با جزئیات بیشتری برای ایجاد و استفاده از آنها درک کنیم.
برای درک API ، ما باید موارد زیر را درک کنیم:
-
رمز وضعیت جدید با درخواست چه اتفاقی افتاد؟
-
پروتکل ارتباطی جدید چگونه مشتری و سرور با یکدیگر صحبت می کنند؟
-
قالب های داده API جدید چگونه داده ها ارسال یا دریافت می شود؟
بیایید موارد فوق را یکی یکی کشف کنیم. از آنجا که همه موارد فوق برای طراحی API بسیار مهم است.
🚀 کد وضعیت (با درخواست چه اتفاقی افتاد؟)
حال ، هنگامی که از مادرتان خواسته اید لیست مواد غذایی را به اشتراک بگذارید چگونه می دانید که درخواست برآورده شده است یا نه؟
اگر مادر شما لیست را تحویل داده است ، موفقیت آمیز است.
اگر منتظر هستید پس چه مدت صبر کنید؟
اگر او رد کرد ، شما نیازی به انجام کاری و غیره ندارید.
این پاسخ ها برای شما مفید است که با درخواست شما چه اتفاقی می افتد و می توانید مطابق آن عمل کنید.
به همین ترتیب ، هنگامی که یک API به یک درخواست پاسخ می دهد ، شامل a رمز وضعیت نشان دهنده موفقیت یا عدم موفقیت.
درک این کدها به توسعه دهندگان به اشکال زدایی موثر کمک می کند.
کدهای وضعیت مشترک:
رمز | معنی | توضیح |
---|---|---|
موفق | ||
200 | یک منبع جدید با موفقیت ایجاد شد | |
201 | مشتری درخواست نامعتبر ارسال کرد | |
204 | احراز هویت لازم است اما مفقود یا نادرست است | |
تغییر مسیر | ||
300 | منبع درخواست شده پیدا نشد | |
301 | مشتری درخواست نامعتبر ارسال کرد | |
خطا | ||
403 | مشتری اجازه دسترسی به منبع را ندارد | |
404 | منبع درخواست شده پیدا نشد | |
سرور | ||
500 خطای سرور داخلی | روی سرور مشکلی پیش آمد | |
502 – دروازه بد | سرور از یک سرور بالادست پاسخ نامعتبر دریافت کرد |
این کدها به توسعه دهندگان کمک می کنند تا رفتار API را مدیریت کرده و تجربه کاربر را بهبود بخشند.
📱 پروتکل های ارتباطی API – (چگونه مشتری و سرور با یکدیگر صحبت می کنند؟)
حال ، هنگامی که شما از لیست مواد غذایی درخواست کرده اید مادرتان پس از آن چگونه ارتباط برقرار کرده اید؟
آیا تصمیم گرفته اید که از یک لیست مواد غذایی بپرسید؟ یا یکی یکی؟ یا با او از فروشگاه مواد غذایی تماس خواهید گرفت و در آن زمان شروع به سفارش می کنید.
این اساساً نحوه وقوع “ارتباط” است. به همین ترتیب ، ما باید در API تعریف کنیم این به عنوان “پروتکل های ارتباطی” شناخته می شود
API های مختلف از متفاوت استفاده می کنند پروتکل های ارتباطی برای تبادل داده در اینجا موارد متداول وجود دارد:
پروتکل ارتباطی | توضیح |
---|---|
استراحت (انتقال حالت بازنمایی) | HTTP API |
گرافیک | فقط آنچه لازم است را درخواست کنید |
GRPC (تماس روش از راه دور Google) | پروتکل API مبتنی بر دودویی |
جوراب | در زمان واقعی |
- استراحت (انتقال حالت بازنمایی) – HTTP API
پرکاربردترین پروتکل که از روشهای استاندارد HTTP پیروی می کند (GET ، POST ، PUT ، DELETE). از URL ها برای دسترسی به منابع استفاده می کند و به طور معمول داده ها را در JSON یا XML مبادله می کند.
مادر شما به شما می دهد لیست مواد غذایی با همه چیز که یکباره نوشته شده است. شما موارد را یک به یک درخواست نمی کنید. شما لیست را می گیرید و به خرید می روید.
2 گرافیک
بر خلاف استراحت ، جایی که شما یک پاسخ ثابت دریافت می کنید ، GraphQL به مشتریان اجازه می دهد فقط داده های مورد نیاز خود را درخواست کنند. این امر باعث می شود بیش از حد و تحقق داده ها به حداقل برسد.
به جای دریافت لیست مواد غذایی کامل ، شما مورد مادر خود را از طریق مورد بپرسید (به عنوان مثال ، “من به چه میوه هایی نیاز دارم؟”). شما دقیقاً همان چیزی را که درخواست می کنید دریافت می کنید ، هیچ چیز بیشتر ، نه چیزی کمتر.
3 GRPC (تماس روش از راه دور Google)
پروتکل API با کارایی بالا و مبتنی بر باینری که برای میکروسرویس و ارتباطات بین خدمات طراحی شده است. کاربردهای بافرهای پروتکل (Protobufs) به جای JSON.
شما و مادرتان به جای اینکه در جملات کامل صحبت کنید ، استفاده می کنید کدهای مخفی برای برقراری ارتباط سریعتر (مانند Shorthand). این کارآمدتر است اما برای درک کدها به هر دو طرف نیاز دارد.
4 جوراب
ارتباطات دو طرفه در زمان واقعی (به عنوان مثال ، برنامه های گپ ، اعلان های زنده) را امکان پذیر می کند. بر خلاف استراحت ، که به درخواست های مکرر نیاز دارد ، WebSockets یک اتصال مداوم را باز نگه می دارد.
شما هنگام خرید با مادر خود تماس می گیرید و او لیست را در زمان واقعی بر اساس آنچه در دسترس است به روز می کند.
🗒 قالب های داده API – (چگونه داده ها ارسال یا دریافت می شود؟)
اکنون ، در کدام قالب می خواهید لیست مواد غذایی به اشتراک گذاشته شود.
هنگام تهیه درخواست های API ، داده ها را می توان در قالب های مختلف رد و بدل کرد:
قالب | استفاده | نمونه |
---|---|---|
JSON (نماد شی JavaScript) | متداول ترین قالب ، سبک وزن و آسان برای تجزیه | یک لیست ساخت یافته و مرتب نوشته شده |
XML (زبان نشانه گذاری گسترده) | مشترک در برنامه های سازمانی و API های SOAP | یک سند دقیق و قدیمی |
HTML | هنگام بازگشت API محتوای صفحه وب استفاده می شود | یک مجله تمام صفحه با تصاویر |
باینری (به عنوان مثال ، تصاویر ، فیلم ها ، pdfs) | برای رسیدگی به پرونده های چندرسانه ای | ضبط صدا از مادرتان به شما می گوید چه چیزی را بخرید |
❓ یک API چگونه به نظر می رسد؟
من مطمئن هستم که اکنون شما مشتاق هستید که ببینید API چگونه در کد به نظر می رسد.
در مثال زیر ، ما یک مثال ساده داریم که در آن قالب json و فرمت ارزش کلیدی است.
{
"items": ["Apples", "Milk", "Bread"],
"vegetables": ["spinach", "mint", "peas"]
}
این پاسخ هنگام درخواست (دریافت (دریافت) URL زیر) خواهد بود.
GET https://api.example.com/groceries
پاسخ شامل لیستی از مواد غذایی در قالب JSON، به دنبال پروتکل ارتباطی (HTTP) و بازگشت کد وضعیت (200 خوب).
به همین ترتیب ، برای درخواست پست ما:
POST https://api.example.com/groceries
Content-Type: application/json
{
"items": ["Bananas", "Oats"]
}
پاسخ (201 ایجاد شده):
{
"message": "Items added successfully",
"items": ["Bananas", "Oats"]
}
پایان
API ها بسیار مهم هستند و ارتباطات یکپارچه بین سیستم های مختلف را قادر می سازند. درست مانند لیست مواد غذایی به شما اطمینان می دهد که موارد مناسب را بدست آورید ، یک API تبادل داده کارآمد بین برنامه ها را تضمین می کند.
اگر این وبلاگ را دوست دارید ، لطفاً مانند آن را به اشتراک بگذارید ، در شبکه خود به اشتراک بگذارید و در X و LinkedIn با من ارتباط برقرار کنید.