طراحی واسطهای برنامهنویسی (API Design)، هم در ارتباط کلاینتها و سرور، و هم در ارتباط زیرسیستمهای مختلف (به ویژه در معماری مایکروسرویس) نقش مهمی دارد. طراحی ارتباط بین سیستمهای نرمافزاری بخش مهمی از طراحی نرمافزار است که میتواند موجب بهبود خوانایی کد، آسانی استفاده از سرویس، بهبود امنیت، و همچنین بهبود قابلیت تغییرپذیری و نگهداشت نرمافزار شود.
معمولا پس از انتخاب معماری کلی سیستم، طراحی API یکی از گامهای مهم در شکستن یک سیستم بزرگ نرمافزاری به زیر سیستمهاست که موجب میشود افراد یا تیمهای مختلف بتوانند روی تولید زیرسیستمها کار کنند.
اکثر سیستمهای امروزی از REST برای ارتباط شبکهای استفاده میکنند؛ در عین حال پروتکل قدیمی SOAP نیز همچنان استفاده میشود و پروتکلهای مدرنتری مانند GraphQL و gRPC نیز در برخی کاربردها مناسبتر هستند.
در طراحی پروتکل REST، استفاده از استانداردهای طراحی بسیار توصیه میشود: مواردی مانند استفاده مناسب از HTTP Verb ها، روشهای استاندارد Sort و Filter، نسخه گذاری (Versioning) و استفاده از مکانیزم Partial Response را هر برنامهنویسی باید بشناسد.
این موضوعات رو اخیرا در درس تحلیل و طراحی برای دانشجویان ارائه دادم. اسلایدهای درس را اینجا هم میذارم، شاید مفید باشه.
https://www.slideshare.net/rahimian_vahid/api-design-a-quick-guide-to-rest-soap-grpc-and-grapgql-by-vahid-rahimian