Sobes.tech
Middle

Kaynak odaklı model (ROM) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kaynak Odaklı Model (Resourse-Oriented Model), sistemin temel varlıklarının kaynaklar olarak temsil edildiği ve standart CRUD (Oluşturma, Okuma, Güncelleme, Silme) işlemlerinin standart HTTP metodları kullanılarak gerçekleştirildiği bir API tasarım yaklaşımıdır.

Ana ilkeler:

  • Kaynaklar: Sistemin temel bileşenleri olup, benzersiz bir tanımlayıcıya (URI) sahiptirler. Örneğin, "kullanıcı", "sipariş", "ürün".
  • Tekdüzen arayüz: Kaynaklar üzerinde işlem yapmak için standart HTTP metodları (GET, POST, PUT, PATCH, DELETE) kullanılır.
  • Kaynakların tanımlanması: Her kaynağın benzersiz bir URI'si vardır.
  • Temsiller: Kaynaklar farklı temsillere sahip olabilirler (örneğin, JSON, XML) ve bunlar istemci ve sunucu arasında kararlaştırılır.
  • Kaynaklar arasındaki bağlantılar (Hypermedia): Kaynaklar, ilişkili kaynaklara bağlantılar içerebilir, bu da istemcinin API içinde gezinmesine olanak tanır.

Örnek:

// Kullanıcı listesi alın
GET /users

// Belirli bir kullanıcıyı alın
GET /users/123

// Yeni kullanıcı oluştur
POST /users
Content-Type: application/json

{
  "name": "İvan",
  "email": "ivan@example.com"
}

// Kullanıcıyı güncelle
PUT /users/123
Content-Type: application/json

{
  "name": "İvan Petrov"
}

// Kullanıcıyı kısmi güncelle
PATCH /users/123
Content-Type: application/json

{
  "email": "ivan.petrov@example.com"
}

// Kullanıcıyı sil
DELETE /users/123

Avantajlar:

  • Basitlik ve standartlaştırma: Web teknolojilerinin standart kullanımı sayesinde kolayca anlaşılır ve kullanılabilir.
  • Ölçeklenebilirlik: Dağıtık sistemler kurmak için uygundur.
  • Önbellekleme: Kaynak temsillerinin önbelleğe alınması performansı artırabilir.
  • İstemci ve sunucu bağımsızlığı: Veri sunumu ile depolama ve işleme arasındaki ayrım.

Dezavantajlar:

  • CRUD dışında karmaşık işlemler için verimli olmayabilir.
  • Durum bilgisi olan (stateful) servisler için her zaman uygun değildir.

ROM, RESTful API'lerin temelini oluşturur.