Kullandığın programlama diline ve framework bazında değişir.
Old school mantıkla başlayalım.
Herşeyi kendin yapabilirsin. Controller kodunun başında daha gidip if satırlarını sıralayıp bakabilirsin. Biraz zahmetli. Ama bütün dillerde her zaman kullanılabilir. Kesin çözüm.
Biraz daha güzeline bakalım
Mesela Java/Spring ikilisini kullandığını varsayalım. JSR 380 diye bir standard var. Basit validasyonlar için bunu kullanabilirsin. Gerçi bunu kullandıkça sanıyorum dah gelişmiş kullanımlarını da öğreneceksindir. Ama örnek verelim.
import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.validation.constraints.Email;
public class User {
@NotNull(message = "Name cannot be null")
private String name;
@AssertTrue
private boolean working;
@Size(min = 10, max = 200, message
= "About Me must be between 10 and 200 characters")
private String aboutMe;
@Min(value = 18, message = "Age should not be less than 18")
@Max(value = 150, message = "Age should not be greater than 150")
private int age;
@Email(message = "Email should be valid")
private String email;
// standard setters and getters
}
Bu mesela bir User sınıfı burada gördüğün annotation kullanımı bahsettiğim standard üzerinde belirlenmiş. Temel işlemler için çok da kullanışlı oluyor. Bu sınıfı nasıl valide edeceksin, hemen o kısma bakalım. Controller üzerindeki metodunun ilk satırında aşağıdaki gibi kontrol edebilirsin.
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
log.error(violation.getMessage());
}
Normalde bu standardı Spring kendisi de kontrol ediyor olması lazım ma bunu springe bıraktığım zaman sanki herşeyine erişemiyorum gibi hissediyorum şahsen. Neyse JSR 380 spring kullanımı gibi arattırabilirsin. Unutmaman gereken jsr380 standardını gerçekleştiren bir kütüphaneyi pom/classpath içine eklemen lazım. Sanıyorum en fazla hibernate kullanılıyor. Ya da ben hep öyle gördüm.
Bu kadar java yeter herhalde.
Bir de başka bir dilde inceleyelim. Mesela benim biraz bilgili olduğum php.
Laravel kullanırken https://laravel.com/docs/8.x/validation bu linke bi bakabilirsin ki gayet güzel anlatır. Kısaca aşağıdaki koda bakalım
Validator::make($request->all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
])->validate('post');
Burada yaptığı request içinde title ve body alanlarının olduğunu ve bunların nasıl olduğunu tanımlıyor. Eğer hata varsa ekrana yansıtmak için de aşağıaki kodu kullanıyor.
$errors = $validator->errors();
Eğer biraz daha kodunu parçalamak istersen request nesneleri oluşturup validation kısmını içine de atabilirsin.
Aslında temel olarak anlaman gereken kullandığın framework yapısını biraz anlaman gerekir. Bütün framework yapıları validation kısmına sahiptir sanıyorum.
Ya da eski ekol if yazmaya devam.
Lütfen yorum eklemek için giriş yapınız veya kayıt olunuz.