REST API tasarımında kaynak (resource) isimlendirme ve URL yapısı nasıl olmalıdır?

Cevap

REST'te URL kaynağı (isim) belirtir, yapılacak işlemi ise HTTP metodu belirtir.

Temel kurallar

  • İsim kullanın, fiil kullanmayın: /users, /getUsers değil.
  • Koleksiyonlar için çoğul: /orders, /orders/42.
  • İlişkiler için hiyerarşi: /users/42/orders. İki seviyeden derine inmekten kaçının.
  • Küçük harf ve tire: /order-items (kebab-case).
  • Filtre, sıralama ve sayfalama query string'de: /orders?status=paid&sort=-created_at&limit=20.
  • Sonda / ve dosya uzantısı (.json) yok; format Accept başlığıyla belirlenir.

Metot ve URL eşleşmesi

İşlemMetot ve URLBaşarılı yanıt
ListeleGET /orders200
GetirGET /orders/42200 / 404
OluşturPOST /orders201 + Location başlığı
Tamamen değiştirPUT /orders/42200 / 204
Kısmi güncellePATCH /orders/42200
SilDELETE /orders/42204

CRUD'a uymayan işlemler

Durum değişikliğini alt kaynak olarak modelleyin:

POST /orders/42/cancellation
POST /orders/42/refunds

Bu mümkün değilse pragmatik bir aksiyon ucu kabul edilebilir (POST /orders/42/cancel), ama tutarlı olun.

Tutarlılık

Hata yanıtları için tek bir format (ör. RFC 9457 Problem Details: type, title, status, detail), JSON alanlarında tek bir isimlendirme stili (camelCase veya snake_case) ve tarihler için ISO 8601 kullanın.

  1. HTTP 401 ile 403 durum kodları arasındaki fark nedir?KolayAPI TasarımıBackend
  2. JWT nedir? Session tabanlı kimlik doğrulamadan farkı nedir?OrtaAPI TasarımıBackend
  3. Idempotency nedir? Hangi HTTP metotları idempotent'tir?OrtaAPI TasarımıBackend
  4. OAuth 2.0 nedir? Authorization Code (PKCE) ve Client Credentials akışları nasıl çalışır?ZorAPI TasarımıBackend
  5. Rate limiting nedir? Token bucket ve sliding window algoritmalarını açıklayın.ZorAPI TasarımıBackend
  6. gRPC nedir? REST'ten farkı nedir ve ne zaman tercih edilir?OrtaAPI TasarımıBackend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle