ویرگول
ورودثبت نام
Nastooh
Nastooh
Nastooh
Nastooh
خواندن ۲ دقیقه·۵ ماه پیش

postman - HTTP Verbs (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS)

HTTP Verbs چیست؟

HTTP Verbs (Methods) تعیین می‌کنند که یک Client روی یک Resource چه عملیاتی انجام می‌دهد.
این متدها بخش اصلی طراحی REST API هستند و رفتار سیستم را از نظر Create / Read / Update / Delete (CRUD) مشخص می‌کنند.


GET

کاربرد:

دریافت داده از سرور بدون تغییر در state سیستم.

ویژگی‌ها:

  • Safe (تغییری در دیتا ایجاد نمی‌کند)

  • Idempotent (چند بار اجرا → نتیجه یکسان)

  • قابل Cache

مثال:

GET /customers/123

POST

کاربرد:

ایجاد یک Resource جدید یا اجرای یک عملیات غیر-idempotent.

ویژگی‌ها:

  • غیر Idempotent

  • معمولاً باعث ایجاد رکورد جدید

  • قابل Cache نیست

مثال:

POST /customers

PUT

کاربرد:

آپدیت کامل یک Resource یا جایگزینی کامل آن.

ویژگی‌ها:

  • Idempotent

  • اگر چند بار ارسال شود → نتیجه یکسان

  • کل resource جایگزین می‌شود

مثال:

PUT /customers/123

PATCH

کاربرد:

آپدیت جزئی یک Resource.

ویژگی‌ها:

  • معمولاً Partial Update

  • ممکن است idempotent باشد (بسته به طراحی)

  • فقط بخشی از داده تغییر می‌کند

مثال:

PATCH /customers/123

DELETE

کاربرد:

حذف یک Resource.

ویژگی‌ها:

  • Idempotent

  • چند بار حذف → نتیجه نهایی یکسان (resource حذف شده)

مثال:

DELETE /customers/123

HEAD

کاربرد:

مشابه GET ولی بدون Body Response.

ویژگی‌ها:

  • فقط Headers برمی‌گردد

  • برای بررسی وجود resource یا metadata

  • مناسب برای performance optimization

مثال:

HEAD /customers/123

OPTIONS

کاربرد:

مشخص کردن capabilityهای یک endpoint.

ویژگی‌ها:

  • برمی‌گرداند:

    • Allowed Methods

    • CORS policy

  • برای preflight request در browser استفاده می‌شود

مثال:

OPTIONS /customers

مقایسه آزمونی مهم
مقایسه آزمونی مهم


نکات امتحانی مهم (L7 → L8)

1. Safe vs Idempotent

  • Safe → تغییر در data ندارد (GET, HEAD)

  • Idempotent → چند بار اجرا نتیجه یکسان دارد (GET, PUT, DELETE)


2. اشتباه رایج طراحی API

  • استفاده از GET برای عملیات تغییر دیتا ❌

  • استفاده از POST برای update بدون دلیل ❌

  • عدم رعایت idempotency در PUT ❌


3. Status Code ارتباطی مهم

  • GET → 200

  • POST → 201 Created

  • PUT → 200 / 204

  • PATCH → 200 / 204

  • DELETE → 204 No Content

  • OPTIONS → 200

  • HEAD → 200 (بدون body)


4. تستر باید چه چیزهایی را بررسی کند؟

  • آیا method درست انتخاب شده؟

  • آیا idempotency رعایت شده؟

  • آیا GET باعث تغییر state نشده؟

  • آیا DELETE دوبار اجرا شود رفتار درست دارد؟

  • آیا PATCH partial update درست انجام می‌دهد؟

  • آیا OPTIONS درست CORS را برمی‌گرداند؟

  • آیا HEAD همان resource را بدون body پاسخ می‌دهد؟


5. دید معماری (L8 نکته مهم)

  • GET برای caching و performance

  • POST برای command-based actions

  • PUT برای deterministic replacement

  • PATCH برای partial mutation

  • DELETE برای state removal


کلیدواژه‌ها

HTTP Methods REST Verb CRUD Safe Method Idempotent GET POST PUT PATCH DELETE HEAD OPTIONS Cacheable Resource State Change API Design CORS Preflight Request


HTTP Verbs (متدهای تعیین‌کننده نوع عملیات روی Resource): برای تعریف رفتار API در معماری REST استفاده می‌شوند.

GET (دریافت داده بدون تغییر state): برای خواندن اطلاعات و caching استفاده می‌شود و Safe و Idempotent است.

POST (ایجاد Resource یا اجرای عملیات): برای ساخت داده جدید استفاده می‌شود و معمولاً Idempotent نیست.

PUT (جایگزینی کامل Resource): برای آپدیت کامل استفاده می‌شود و Idempotent است.

PATCH (آپدیت جزئی Resource): برای تغییر بخشی از داده استفاده می‌شود و معمولاً Partial Update محسوب می‌شود.

DELETE (حذف Resource): برای حذف داده استفاده می‌شود و Idempotent است.

HEAD (دریافت فقط Header): برای بررسی وجود Resource بدون دریافت Body استفاده می‌شود.

OPTIONS (بررسی قابلیت‌های API): برای CORS و دریافت Allowed Methods استفاده می‌شود.


تگ‌ها

#APITesting
#HTTPMethods
#RESTAPI
#BackendTesting
#APIDesign

تغییر
۱
۰
Nastooh
Nastooh
شاید از این پست‌ها خوشتان بیاید