Focus mode
API, Application Program Interface olarak adlandırılan bir yapıdır. Bu yapı, Java gibi bir backend tarafında veritabanındaki verileri yazıp, çıktı üreterek bu veriyi başka servislere veya frontend kısmında React ile yazılmış bir web sitesine veya mobil uygulamaya aktarmamıza olanak tanıyan iletişim yapılarıdır. API'lar, farklı yazılım bileşenlerinin farklı dillerde veya aynı dilde birbirleriyle haberleşmesini sağlar.
Projelerde backend veya frontend geliştirici olarak çalışırken sıkça karşılaştığımız bir konu olan API'lar, özellikle büyük ve farklı platformlarda çalışan projelerde önemli bir rol oynar. Web sitesi için PHP, mobil uygulama için Android veya iOS gibi farklı teknolojilerin bir arada kullanıldığı durumları düşünebiliriz.
API'lar, projeler arasında veritabanı gibi ortak bir yapı oluşturarak farklı yazılım bileşenlerinin birbiriyle iletişim kurmasını sağlar. Bu iletişimi düzenleyen ve yöneten API'lar, birçok çeşide sahiptir. Web API, SOAP, RESTful gibi API türleri mevcuttur.
RESTful API, Representational State Transfer (Temsil Durumu Transferi) prensiplerine dayanan bir API yapısıdır. JSON veya XML formatında veri iletilen bu API yapısı, insan beynine daha yakın ve anlaşılır bir yapıya sahiptir. RESTful API tasarlarken dikkat edilmesi gereken önemli konulardan biri, API isimlendirmeleridir.
API'nin adlandırılması, kullanıcılara standart ve anlaşılır bir yapı sunmak için önemlidir. Örneğin, her bir kaynağın (resource) isminin çoğul ve küçük harflerle belirlenmesi, API'ya daha tutarlı bir görünüm kazandırabilir. Ayrıca, versiyonlama da önemli bir faktördür.
API'nin başına versiyon numarası eklemek, gelecekte yapılacak değişikliklere uyum sağlamak adına önemlidir. Bu sayede eski versiyonu kullanan kullanıcılarla iletişim kopmaz ve güncellemeler sorunsuz bir şekilde uygulanabilir.
HTTP response kodları da RESTful API'nin önemli bir parçasıdır. Bu kodlar, kullanıcılara API çağrıları sonucunda elde edilen bilgileri ve işlemin başarılı olup olmadığını bildiren önemli mesajlardır. Örneğin, HTTP 200 OK, başarılı bir isteği temsil ederken, 404 Not Found veya 500 Internal Server Error gibi kodlar hataları belirtir.
Bir customer üzerinden rest API'ları nasıl tasarlayabileceğimizi kodlamaya başlamadan önce düşünelim. Mevcut bir customer entity'imiz var. Ancak burada bir get metotlarıyla ilgili bazı eksiklikler var. Şimdi, bu customer üzerinden rest API'ları nasıl sağlayabileceğimize odaklanalım.
İlk olarak, bu işlemleri sağlayacak bir DAO (Data Access Object) sınıfı olan "CustomerRepository" sınıfını yazalım. Bu sınıf, JPA Repository'yi genişletecek ve customer alanını ve identity integer'ı içerecek bir sınıf olacak.
Ardından, iş mantığı tarafında bir abstract sınıf olan "CustomerService" sınıfını oluşturalım. Bu sınıf, CRUD işlemlerini gerçekleştirecek metotları içerecek bir interface olacak.
Bu işlemleri gerçekleştiren bir sınıf olan "CustomerManager" sınıfını yazalım. Bu sınıf, "CustomerService" interface'ini implement edecek ve bağımlılık enjeksiyonunu gerçekleştirecektir.
Şimdi, API tarafını tasarlamaya geçebiliriz. "CustomerController" adında bir sınıf oluşturalım ve bunun bir rest controller olduğunu belirtelim. Request mapping için "/v1/customers" şeklinde bir versiyonlama yapalım. Bu sınıf içinde, CRUD işlemlerini sağlamak için gerekli metodları yazalım.
Önce, verileri listeleyen bir "GetAllCustomers" metodu yazalım. Bu metot, iş mantığı tarafındaki "CustomerService" sınıfındaki "FindAll" metodunu çağıracak.
Ardından, bir veri eklemek için "AddCustomer" metodu oluşturalım. Bu metot, post request ile gelen veriyi alacak ve iş mantığı tarafındaki "CustomerService" sınıfındaki "Save" metodu ile yeni bir customer ekleyecek.
Daha sonra, bir customer'ı güncellemek için "UpdateCustomer" metodu yazalım. Bu metot da put request ile gelen veriyi alacak ve "CustomerService" sınıfındaki "Save" metodu ile customer'ı güncelleyecek.
Son olarak, bir customer'ı silmek için "DeleteCustomer" metodu oluşturalım. Bu metot, delete request ile gelen customer ID'yi alacak ve "CustomerService" sınıfındaki "Delete" metodu ile ilgili customer'ı silecek.
Tüm bu adımları takip ettiğinizde, basit bir rest API tasarlamış olacaksınız. Şimdi, postman gibi araçları kullanarak bu API'yi test edebilir ve çeşitli request'ler gönderebilirsiniz.
Programs to Accelerate Your Progress in a Software Career
Join our 4-8 month intensive Patika+ bootcamps, start with the fundamentals and gain comprehensive knowledge to kickstart your software career!
You need to enroll in the course to be able to comment!