مفاهیم و الزامات کلیدی REST API

بی تابعیت
هر درخواست مشتری باید شامل تمام اطلاعات لازم برای پردازش درخواست توسط سرور باشد. سرور نباید هیچ اطلاعاتی در مورد وضعیت کلاینت بین درخواست ها ذخیره کند و این باعث می شود API بدون حالت باشد. این اصل امکان مقیاس پذیری بهتر و نگهداری آسان تر را فراهم می کند.
معماری مشتری-سرور
یک REST API مبتنی بر معماری سرویس گیرنده-سرور است که در آن مشتری مسئول رابط کاربری است و سرور ذخیره و پردازش داده ها را مدیریت می کند. این تفکیک نگرانیها باعث افزایش انعطافپذیری، مقیاسپذیری و قابلیت نگهداری میشود.
قابلیت ذخیره سازی در حافظه پنهان
برای بهینه سازی عملکرد، API های REST باید از کش پشتیبانی کنند. پاسخهای سرور باید نشان دهد که آیا میتوان آنها را در حافظه پنهان کرد یا نه، بنابراین مشتری میتواند در صورت لزوم از پاسخهای ذخیره شده مجدداً استفاده کند. این باعث کاهش بار روی سرور و بهبود عملکرد کلی می شود.
سیستم لایه ای
یک REST API باید با استفاده از معماری لایهای ساخته شود، جایی که هر لایه عملکرد خاصی را انجام میدهد. این تفکیک نگرانی ها حفظ و تکامل سیستم را در طول زمان آسان تر می کند. به عنوان مثال، یک API ممکن است دارای یک لایه امنیتی، یک لایه منطق تجاری و یک لایه دسترسی به داده باشد.
رابط یکنواخت
یک REST API باید یک رابط ثابت و یکنواخت داشته باشد که استفاده از آن را سادهتر کرده و آن را بصریتر میکند. این شامل استفاده از روشهای استاندارد HTTP، قراردادهای نامگذاری منابع واضح و ارائه پیامهای خطای توصیفی است.
کد درخواستی (اختیاری)
اگرچه همیشه پیادهسازی نمیشود، APIهای REST میتوانند از قابلیت گسترش عملکرد کلاینت از طریق کدهای قابل دانلود مانند جاوا اسکریپت پشتیبانی کنند. این ویژگی میتواند در سناریوهای خاص مفید باشد، اما برای REST API الزامی نیست.
ناتوانی
عملیات Idempotent آنهایی هستند که می توانند چندین بار بدون تغییر نتیجه فراتر از کاربرد اولیه انجام شوند. در زمینه APIهای REST، روشهای GET، PUT و DELETE باید فاقد قدرت باشند و اطمینان حاصل شود که درخواستهای مکرر همان تأثیر یک درخواست را دارند.
تودرتوی منابع
در برخی موارد، لانه کردن منابع در منابع دیگر برای نشان دادن روابط منطقی است. به عنوان مثال، ممکن است نظرات یک کاربر در یک پست وبلاگ را با نشانی اینترنتی مانند /posts/123/comments نشان دهید. از تودرتو به مقدار کم و تنها زمانی استفاده کنید که سلسله مراتب طبیعی داده ها را منعکس کند.
فیلتر کردن، مرتب سازی و جستجو
علاوه بر فیلتر کردن و مرتبسازی اولیه، قابلیتهای جستجوی پیشرفتهتری را برای API خود پیادهسازی کنید، مانند جستجوی متن کامل یا جستجوی پیچیده. این به مشتریان اجازه می دهد تا به سرعت منابع مربوطه را پیدا و بازیابی کنند.
همچنین بررسی کنید: