REST Nedir ve İsimlendirme Standartları Nelerdir?

Mehmet Demircan
Devops Türkiye☁️ 🐧 🐳 ☸️
2 min readJun 10, 2020

Merhaba arkadaşlar,
Bildiğim kadarıyla sizlere REST ve HTTP metodlarından bahsedeceğim. Ek olarak RESTful Best Practices olarak tanımlanan bazı path standartlarını örnekler üzerinden anlatacağım.

REST Nedir?

Özet geçecek olursak REST clientlar arasında haberleşmeyi sağlayan ve HTTP üzerinde çalışan bir mimaridir. Az boyutlar ile veri iletişimi iletişimi sağlar ve bu verileri XML veya JSON olarak üzerinde taşır ama genellikle JSON tercih edilir. REST standartlarına uygun yazılan servislere RESTful servisler denir.

HTTP Metodları

POST → Client tarafında veri oluşturmak için,
PUT → Client tarafında güncelleme yapmak için,
GET → Clientdan veri okumak için,
DELETE → Client tarafında silme işlemleri için kullanılır.

HTTP Durum Kodları

2xx (Başarılı Durumlar)
3xx (Yönlendirme Durumları)
4xx (Client Kaynaklı Hatalar)
5xx (Server Kaynaklı Hatalar)

Sık Kullanılan HTTP Durum Kodları

200 (OK) → İsteğin başarılı olduğu,
201 (CREATED) → İstek ile bir create işlemi yapıldığı,
400 (BAD REQUEST) → İsteğin hatalı olduğu,
401 (UNAUTHORIZED) → İsteğin kimlik doğrulaması olmadığı,
402 (PAYMENT REQUIRED) → Ödeme gerekli,
404 (NOT FOUND) → İstek atılan clientın bulunmadığı,
500 (INTERNAL SERVER ERROR) → Server tarafında bir hata oluştuğu anlamına gelir.

RESTful İsimlendirme Standartları

1- Çoğul isimler tercih edilmelidir.

/team 
/teams

2- Fiil değil isim kullanılmalıdır.

/createTeam 
/getTeams
/update/teams/97
POST /teams ✓ → Yeni takım oluşturmak için uygulanabilir.
GET /teams Mevcut tüm takımları getirmek için uygulanabilir.

3- İstekten etkilenen kişi ID’si ile url’e PathVariable olarak eklenmelidir.

GET  /teams/97  97 ID'li takımın bilgileri için uygulanabilir.
PUT /teams/97 97 ID'li takımı güncellemek için uygulanabilir.
DELETE /teams/97 97 ID'li takımı silmek için uygulanabilir.

4- Hiyerarşik ilişkiler için / kullanılmalıdır.

97 ID'li takımın 34 ID'li oyuncusu için:/teams/97/players/34 
/teams/players/34

5- Okunabilirlik açısından birden fazla kelimeler ayrılmalı, alt çizgi ve büyük harf tercih edilmemeli, sonda eğik çizgi olmamalı ve kısaltmalar tercih edilmemelidir.

/technology-teams/97/players/34 
/technologyTeams/97/players/34 ✗ → technologyTeams
/technology_teams/97/players/34 ✗ → technology_teams
/TECHNOLOGY-TEAMS/97/players/34 ✗ → TECHNOLOGY-TEAMS
/technology-teams/97/players/34/ ✗ → /
/tech-teams/97/players/34 ✗ → tech

6- Filtre isteklerinde parametre kullanılmalıdır.

/technology-teams/97/players/developer 
/technology-teams/97/players?region=TR&job=developer
/technology-teams?job=developer&language=java&sort=salary

7- Versiyonu olan API’lerde url’in başında versiyon bildirilmelidir.

/v2/teams 
/teams/v2

Buraya kadar okuyup vakit ayırdığınız için teşekkür ederim. Araştırıp öğrendiklerimi ve bildiklerimi anlatmaya çalıştım. Umarım faydalı olmuştur.

Ayrıca Idempotent Rest API

--

--