API مخفف Application Programming Interface و به معنی رابط برنامه‌نویسی کاربردی است. API قراردادی میان دو جزء نرم‌افزاری است. این قرارداد می‌تواند یک تابع در کتابخانه، یک پروتکل شبکه یا API وب باشد و لزوماً به اینترنت یا JSON محدود نیست.

RESTful API چیست؟

REST مخفف Representational State Transfer است. یک RESTful API از منابع، URI، معنای روش‌های HTTP، پاسخ‌های استاندارد و اصل Stateless بودن ارتباط HTTP به درستی استفاده می‌کند. REST با JSON مساوی نیست و GET / POST به‌تنهایی API را RESTful نمی‌کنند.

نمونه API فروشگاه باورژن

GET /api/products?category=books HTTP/1.1
Host: baversion.com
Accept: application/json

HTTP/1.1 200 OK
Content-Type: application/json

{"data": [{"id": 12, "name": "Design Patterns"}]}

در این مثال دامنه باورژن صرفاً برای نمایش ساختار درخواست انتخاب شده است، نه اینکه وجود API واقعی در این مسیر تایید شده باشد.

اجزای قرارداد API

مفهوممثالنکته
Endpoint/api/products/12مسیر دسترسی به منبع
HTTP MethodGET، POSTنوع عملیات درخواستی
HTTP Status Code200، 201، 404نتیجه پردازش
Request / Response BodyJSON یا انواع دیگرساختار داده قرارداد
AuthenticationBearer Token یا Cookieتشخیص درخواست‌دهنده
Authorizationمجوز مشاهده یا تغییر سفارشکنترل دسترسی به منبع
Versioning/api/v1/ordersمدیریت تغییر قرارداد

REST، GraphQL و gRPC در یک نگاه

روشویژگیمناسب برای
RESTمنابع و قرارداد HTTPبسیاری از سرویس‌های وب
GraphQLانتخاب ساختار داده موردنیاز توسط کلاینتنیازهای منعطف داده
gRPCقرارداد Protobuf و RPCارتباط سرویس به سرویس

نکته فنی

در API عمومی باید Authentication، Authorization، اعتبارسنجی، Rate Limiting، صفحه‌بندی و مدیریت خطا را در طراحی قرارداد لحاظ کرد.

اصطلاحات مرتبط: رست API، رست، پروتکل انتقال ابرمتن، متدهای HTTP، کدهای وضعیت HTTP، احراز هویت API، نسخه‌بندی API، زبان پرس‌وجوی گراف‌کیوال، ریت لیمیتینگ، درگاه API.

برای تکمیل این بحث، صفحه نیازمندی فانکشنال را نیز ببینید.