Project Guideline | Spring Template Projesi
API GUIDELINE:
Rest Metodları:
- Referanslar:
- GET: Veri çekilen, sadece sorgu amaçlı işlem yapılacak. İşlem yapılan entity adı DEMO olsun.
- Örnek URL – Belli Bir Kayıt: /demo/{id}
- Örnek URL – Tüm Kayıtlar: /demo
- Örnek URL – Belli Filtre: /demo?filter-by-field=”filter value”
- Örnek URL – Belli Filtre: /demo?filter-by-field=”filter value”&filter-two=flt&page=2&page-size=50&order=key
- Request Body: Yok!
- Response – Success | 200: Bir ya da birden çok kayıt bulundu ve response olarak dönüldü.
- Response – Record Not Found | 204: Hiçbir kayıt bulunamadı
- Response – Exception Occurred | 400 – 500: Bir hata meydana geldi ve işlem tamamlanamadı.
- PUT: Yeni kayıt eklenecek, kayıt create etme amaçlı işlem yapılacak. Bir kayıt eklemek birden çok tabloya kayıt atmak anlamına geliyorsa bu metod kullanılabilir. Bu işlem TRANSACTIONAL olmalı.
- Örnek URL – Primary Key Alanı Auto Increment Olmayan Bir Kayıt: /demo/{id}
- Örnek URL – Primary Key Alanı Auto Increment Olan Bir Kayıt: /demo
- Request Body: Yeni oluşturulacak entity için kullanılacak alanlar.
- Response – Success | 201: İşlem başarıyla tamamlandı ve kayıt oluşturuldu.
- Response – Exception Data Already Exists | 409: Eklenmek istenen kayıt zaten mevcut olduğu için işlem tamamlanamadı.
- Response – Exception Occurred | 400 – 500: Bir hata meydana geldi ve işlem tamamlanamadı.
- PATCH: Mevcut kayıt kısmen kısmen güncellenecek, bir kaydın 1-2 alanının güncellenmesi, mesela sadece 1 kullanıcı için birkaç alan güncellenecek. Bu işlem TRANSACTIONAL olmalı.
- Örnek URL – Güncellenecek Kaydın Primary Key Verisi Belli: /demo/{id}
- Örnek URL – Güncellenecek Kaydın Primary Key Verisi Belli Değil: /demo?filter-by=”filter value”
- Request Body: Mevcut entity içerisindeki güncellenecek alanlar.
- Response – Success | 200: Bir ya da birden çok kayıt bulundu ve başarıyla güncellendi.
- Response – Record Not Found | 204: Hiçbir kayıt bulunamadı
- Response – Exception Occurred | 400 – 500: Bir hata meydana geldi ve işlem tamamlanamadı.
- POST: Mevcut kaydın tamamı güncellenecek, yani aslında tüm data servisle request içerisinde gönderilecek. Birden çok kullanıcı için birkaç alan ya da tüm veri güncellenecekse gönderilecek. Buradaki konu veri güncellemek olmayı, dış servis çağrısı ya da başka bir işlem de olabilir. URL alanında PATH PARAM ya da QUERY PARAM olamaz. Gerekli her şey body içerisinde gönderilecek.
- Örnek URL: /demo
- Request Body: Gerekli her şey body içerisinde gönderilecek.
- Response – Success | 200: İşlem başarıyla tamamlandı.
- Response – Exception Occurred | 400 – 500: Bir hata meydana geldi ve işlem tamamlanamadı.
- DELETE: Mevcut bir ya da bağlantılı birden çok kayıt silinecek. Bu işlem TRANSACTIONAL olmalı.
- Örnek URL – Silinecek Kaydın Primary Key Verisi Belli: /demo/{id}
- Örnek URL – Silinecek Kaydın Primary Key Verisi Belli Değil Ya da Birden Çok Kayıt Silinecek: /demo?filter-by=”filter value”
- Request Body: Mevcut entity içerisindeki güncellenecek alanlar.
- Response – Success | 200: Bir ya da birden çok kayıt bulundu ve başarıyla silindi.
- Response – Record Not Found | 204: Hiçbir kayıt bulunamadı
- Response – Exception Occurred | 400 – 500: Bir hata meydana geldi ve işlem tamamlanamadı.
DATABASE GUIDELINE:
Tablo İsimleri:
- Tüm karakterler küçük harfle yazılacak, birden çok kelime olduğunda araya alt çizgi ( _ ) eklenecek, tüm karakterler İngilizce yazılacak.
- prefix + “_tbl_” + tableName => dm_tbl_city
- Tablo açıklamasında ilk harf büyük harf olmalı, sonraki tüm harfler küçük harf olmalı, araya boşluk eklenebilir.
Tablo Kolon İsimleri:
- Tüm karakterler küçük harfle yazılacak, birden çok kelime olduğunda araya alt çizgi ( _ ) eklenecek, tüm karakterler İngilizce yazılacak.
- Her tablo için maksimum 3-6 karakter olacak bir tablo ön eki (tablePrefix) belirlenecek, kolon isimleri bununla başlayacak. Amaç tüm veritabanındaki her tablo düşünüldüğünde kolon isimlerinin tekil olması olarak ifade edilebilir. tablePrefix kodları tam veritabanı için tekil olmalı, iki farklı tablonun tablePrefix değeri aynı olmamalı.
- Kolon açıklamasında ilk harf büyük harf olmalı, sonraki tüm harfler küçük harf olmalı, araya boşluk eklenebilir.
- Normal Kolon: tablePrefix + “_” + columnName => city_name
- Başka bit tablodaki bir kolon’a referans veriliyorsa(????): localTablePrefix + “_” + remoteTablePrefix + “_” + remoteColumnName => city_country_code
Tablodaki Key İsimleri:
- Tüm anahtarlar “key_” ile başlayacak, key tipini ifade eden bir kısaltma ile devam edecek, devamında tablo prefix’i yazılacak, en sonda da key ismi (mümkünse kolon ismi) yer alacak, tüm karakterler İngilizce yazılacak.
- Foreign key için: “key_fk_” + tablePrefix + “_” + keyName => key_fk_city_country_code
- Normal Key için: “key_ind_” + tablePrefix + “_” + keyName => key_ind_city_name
- Unique Key için: “key_un_” + tablePrefix + “_” + keyName => key_un_city_code