Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
REST API Design Rulebook

REST API Design Rulebook

توسط Mark Masse 2011 112 صفحات
3.34
100+ امتیازها
گوش دادن

نکات کلیدی

1. APIهای REST از قابلیت‌های کامل HTTP برای ارتباط وب مقیاس‌پذیر بهره می‌برند

REST به ما می‌گوید که چگونه وب به مقیاس بزرگ خود دست یافته است.

محدودیت‌های معماری مقیاس‌پذیری را ممکن می‌سازند. REST (انتقال حالت نمایشی) سبک معماری وب جهانی است که برای دستیابی به مقیاس‌پذیری عظیم طراحی شده است. این هدف را از طریق محدودیت‌های کلیدی زیر محقق می‌کند:

  • جداسازی نگرانی‌های کلاینت و سرور
  • تعاملات بدون حالت
  • رابط یکنواخت (شامل شناسایی منابع، دستکاری از طریق نمایش‌ها، پیام‌های خودتوصیفی و کنترل‌های هایپرمدیا)
  • سیستم لایه‌ای که به واسطه‌ها اجازه می‌دهد
  • کش برای کاهش تأخیر
  • کد اختیاری بر روی تقاضا برای توسعه‌پذیری کلاینت

این محدودیت‌ها با هم کار می‌کنند تا سیستمی توزیع‌شده ایجاد کنند که قادر به مدیریت تعداد زیادی از تعاملات باشد و در عین حال انعطاف‌پذیر و کارا باقی بماند.

2. URIها باید منابع را به‌طور منحصربه‌فرد شناسایی کنند بدون اینکه جزئیات پیاده‌سازی را فاش کنند

هر کاراکتر درون یک URI به هویت منحصربه‌فرد یک منبع کمک می‌کند.

طراحی URIهای شفاف و سلسله‌مراتبی. URIها (شناسه‌های منبع یکنواخت) اساس APIهای REST هستند که هر منبع را به‌طور منحصربه‌فرد شناسایی می‌کنند. بهترین شیوه‌ها برای طراحی URI شامل موارد زیر است:

  • استفاده از اسلش‌های رو به جلو برای نشان دادن روابط سلسله‌مراتبی
  • ترجیح حروف کوچک
  • استفاده از خط تیره برای بهبود خوانایی
  • اجتناب از پسوندهای فایل
  • استفاده از اسامی جمع برای مجموعه‌ها
  • استفاده از اسامی مفرد برای منابع خاص
  • استفاده از نام‌گذاری‌های سازگار در سراسر API

URIهای خوب طراحی‌شده باید شهودی و خودتوصیف باشند و به توسعه‌دهندگان اجازه دهند ساختار منابع را بدون نیاز به مستندات گسترده درک کنند. با این حال، کلاینت‌ها باید URIها را به‌عنوان شناسه‌های مبهم در نظر بگیرند و سعی نکنند معنایی از آن‌ها استخراج کنند.

3. روش‌های HTTP تعاملات استاندارد با منابع را تعریف می‌کنند

یک API REST نباید طراحی خود را با استفاده نادرست از روش‌های درخواست HTTP برای تطبیق با کلاینت‌هایی با واژگان محدود HTTP به خطر بیندازد.

استفاده سازگار از روش‌های HTTP. روش‌های استاندارد HTTP یک رابط یکنواخت برای تعامل با منابع فراهم می‌کنند:

  • GET: بازیابی نمایش یک منبع
  • POST: ایجاد یک منبع جدید در یک مجموعه یا اجرای یک کنترلر
  • PUT: به‌روزرسانی یک منبع موجود یا ایجاد یک منبع جدید در یک فروشگاه
  • DELETE: حذف یک منبع
  • HEAD: بازیابی متاداده درباره یک منبع
  • OPTIONS: کشف تعاملات موجود برای یک منبع

هر روش دارای معنای خاص و رفتار مورد انتظار است. به‌عنوان مثال، GET باید ایمن و ایدم‌پوتنت باشد، در حالی که POST ممکن است اثرات جانبی داشته باشد. استفاده سازگار از این روش‌ها در طراحی API شما پیش‌بینی‌پذیری و قابلیت همکاری را افزایش می‌دهد.

4. متاداده در هدرهای HTTP عملکرد و کارایی API را بهبود می‌بخشد

کش یکی از مفیدترین ویژگی‌های ساخته‌شده بر روی HTTP است.

استفاده از هدرهای HTTP برای متاداده. هدرهای HTTP عملکرد زیادی برای APIهای REST فراهم می‌کنند:

  • Content-Type: نوع رسانه بدنه درخواست یا پاسخ را مشخص می‌کند
  • ETag: امکان کش کارآمد و درخواست‌های شرطی را فراهم می‌کند
  • Cache-Control: رفتار کش را برای بهبود عملکرد هدایت می‌کند
  • Authorization: از طرح‌های مختلف احراز هویت پشتیبانی می‌کند
  • Accept: امکان مذاکره محتوا برای نمایش‌های مختلف را فراهم می‌کند

استفاده صحیح از هدرها می‌تواند به‌طور قابل‌توجهی عملکرد، امنیت و انعطاف‌پذیری API را بهبود بخشد. به‌عنوان مثال، استفاده مؤثر از هدرهای کش می‌تواند بار سرور را کاهش داده و زمان پاسخ را بهبود بخشد، در حالی که هدرهای احراز هویت امکان کنترل دسترسی امن را فراهم می‌کنند.

5. نمایش‌های منابع باید از فرمت‌های سازگار و کنترل‌های هایپرمدیا استفاده کنند

کلاینت‌های API REST باید تشویق شوند که به ویژگی‌های خودتوصیفی یک API REST تکیه کنند.

طراحی نمایش‌های خودتوصیف. نمایش‌های منابع باید سازگار و خودتوصیف باشند:

  • استفاده از فرمت‌های استاندارد مانند JSON یا XML
  • شامل کنترل‌های هایپرمدیا (لینک‌ها) برای راهنمایی کلاینت‌ها در اقدامات موجود
  • استفاده از ساختارهای سازگار برای عناصر مشترک مانند خطاها
  • استفاده از نام‌های فیلد توصیفی و انواع داده مناسب
  • شامل متاداده درباره نمایش (مثلاً اطلاعات طرح)

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

6. استراتژی‌های نسخه‌بندی، امنیت و ترکیب‌پذیری انعطاف‌پذیری API را بهبود می‌بخشند

OAuth یک پروتکل احراز هویت مبتنی بر HTTP است که امکان حفاظت از منابع را فراهم می‌کند.

طراحی برای تکامل و امنیت. استراتژی‌های کلیدی برای APIهای انعطاف‌پذیر و امن شامل موارد زیر است:

  • نسخه‌بندی: استفاده از نسخه‌بندی طرح به‌جای نسخه‌بندی URI
  • امنیت: پیاده‌سازی OAuth یا راه‌حل‌های مدیریت API برای کنترل دسترسی
  • پاسخ‌های جزئی: اجازه به کلاینت‌ها برای درخواست فقط فیلدهای مورد نیاز
  • منابع جاسازی‌شده: امکان بازیابی منابع مرتبط در یک درخواست
  • مدیریت خطا: ارائه پاسخ‌های خطای سازگار و اطلاعاتی

این استراتژی‌ها به APIها اجازه می‌دهند با گذشت زمان بدون شکستن کلاینت‌های موجود تکامل یابند و در عین حال ویژگی‌های امنیتی و کارایی مورد نیاز برنامه‌های مدرن را فراهم کنند.

7. کلاینت‌های جاوااسکریپت نیاز به ملاحظات ویژه برای درخواست‌های بین‌مبدأ دارند

CORS جایگزینی برای JSONP است که از همه روش‌های درخواست پشتیبانی می‌کند.

فعال‌سازی دسترسی بین‌مبدأ. محدودیت‌های امنیتی مرورگر می‌تواند چالش‌هایی برای کلاینت‌های جاوااسکریپت که به APIها از دامنه‌های مختلف دسترسی دارند ایجاد کند. دو رویکرد اصلی به این مسئله می‌پردازند:

  • JSONP (JSON با پدینگ): امکان دسترسی فقط خواندنی با بهره‌گیری از رفتار تگ اسکریپت
  • CORS (اشتراک منابع بین‌مبدأ): فراهم کردن دسترسی کامل خواندن/نوشتن با پشتیبانی مرورگر

CORS رویکردی قوی‌تر و استانداردتر است که از همه روش‌های HTTP پشتیبانی می‌کند. با پیاده‌سازی CORS، APIها می‌توانند به‌طور امن دسترسی از برنامه‌های جاوااسکریپت میزبانی‌شده در دامنه‌های مختلف را فراهم کنند و برنامه‌های وب غنی و ترکیبی را ممکن سازند.

آخرین به‌روزرسانی::

نقد و بررسی

3.34 از 5
میانگین از 100+ امتیازات از Goodreads و Amazon.

کتاب قوانین طراحی API REST نظرات متفاوتی را به خود جلب کرده است. بسیاری از خوانندگان بخش اول آن را برای اصول طراحی API REST ارزشمند می‌دانند، اما به تمرکز بخش دوم بر WRML، چارچوب پیشنهادی نویسنده، انتقاد می‌کنند. جنبه‌های مثبت شامل قوانین واضح برای طراحی API، به‌ویژه در فصل‌های ابتدایی است. انتقادات شامل کوتاهی کتاب، تکرار مکرر و تأکید بیش از حد بر WRML می‌باشد. برخی از خوانندگان پیشنهاد می‌کنند که از این کتاب به‌عنوان مرجع استفاده کنند تا اینکه آن را از ابتدا تا انتها بخوانند. به‌طور کلی، این کتاب به‌عنوان یک مقدمه خوب برای طراحی API REST دیده می‌شود، اما ممکن است در برخی بخش‌ها قدیمی و بیش از حد نظری باشد.

درباره نویسنده

مارک مَس، مهندس نرم‌افزار و نویسنده‌ای است که به خاطر کارهایش در زمینه طراحی APIهای REST شناخته می‌شود. او کتاب «قوانین طراحی APIهای REST» را نوشته است تا راهنمایی برای ایجاد APIهای مؤثر و استاندارد ارائه دهد. مَس زبان مدل‌سازی منابع وب (WRML) را توسعه داده است که چارچوب پیشنهادی برای طراحی APIهای مبتنی بر هایپرمدیا است و در کتابش به‌طور برجسته‌ای به آن پرداخته است. تخصص او در معماری وب، طراحی API و اصول مهندسی نرم‌افزار است. در حالی که برخی از خوانندگان به رویکرد جامع او در قوانین طراحی APIها ارج می‌نهند، دیگران تأکید او بر WRML را بحث‌برانگیز و احتمالاً غیرعملی می‌دانند. هدف کار مَس پر کردن شکاف بین اصول نظری REST و پیاده‌سازی عملی آن در توسعه وب مدرن است.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Nov 30,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance