Spring ve MongoDb Kullanarak Rest Servis Hazırlamak

Bedrettin Akyüz
Kodcular
Published in
3 min readNov 8, 2021

Herkese merhaba . Bu yazıda isimlerine sıkça rastladığımız mongo ve spring üzerine hazırladığım basic uygulamayı anlatacağım . Amacımız Spring kullanarak servis hazırlamak , bu servisi bir mongo veritabanına bağlamak . Sonraki yazı da projeyi , ücretsiz hizmetleri de bulunan clever cloud uzak sunucusuna deploy ediyor olacağız.

Spring projesi hazırlamak için start.spring.io adresine giderek proje ayarlarını yaparak oluşturuyoruz . Oluşturduğumuz projeyi indirdikten sonra IDE mize import existing maven Project ile dahil ediyoruz. Ben eclipse ide sini kullanıyorum. Projemiz yüklendi ve gerekli paketler indirildi.

https://start.spring.io

Lombok : Getter ve setter metotlarını ayrı ayrı yazmaya gerek bırakmadan , anatosyonlar yardımıyla oluşturmamıza olanak sağlar. Detaylı bilgi için bkz.

Spring Data MongoDB : Veritabanı işlemlerimiz için gerekli implementleri sağlayacak.

Spring Boot DevTools : Ben uygulama da değişikliklerden sonra otomatik deploy etme özelliğini kullanıyorum . Bunun haricin de işlevsel bir çok özelliği bulunmakta.

Projenin ilk ayağında sadece veri ekleyip gösterme yapacağımız için bu paketler işimizi görecektir. API paketinde http isteklerinin karşılandığı controller ımız , DAL paketindeki bu isteklerin yönlendirildiği sınıflar , Repositories paketi altında veriye temas ettiğimiz repository ler bulunacak .

Biz proje de mongo database ini kullanacağımız için ,veri tabanı işlemleri için Mongo Repository extend ini yaptığımız repository mizi kullanıyor olacağız. Mongo Repository hakkında detaylı bilgi için bu linkten faydalanabilirsiniz.

Book Class

Book sınıfını veri tabanında ki collection ımızın örneği olarak kabul edebiliriz. Burada kullandığımız değişkenler veri tabanında anahtarımızı temsil edecek .

RDBMS(ilişkisel veri tabanları) sistemlerde kullandığımız tablolar , nosql veri tabanlarında collection olarak saklanır. Collectionlar da veriler (key/value) olarak tutulur. Veriler aralarında ilişki olmadığından oldukça hızlıdır. Document ler ise satırlarımızı temsil eder.

Repository

BookRepository MongoRepository interface ini extend ediyor . MongoRepository extendi sayesinde CRUD operasyonlarının yanında bir çok veri tabanı operasyonunu kullanabiliriz. Biz farklı olarak isme ve yazara göre arama seçeneklerini ekledik.

DAL (Data Acces Layer)

BookDal sınıfı db ile gelen http istekleri arasındaki iletişimi sağlıyor. Dal sınıfı içerisindeki metotlara erişim için controller içerisinde hepsine karşılık gelen endpoint leri oluşturacağız.

HTTP isteklerinin cevaplanacağı controller ı da ekledikten sonra kullanacağımız veri tabanı bağlantımız kalıyor.

application.properties

Mongo Db kullanabilmek için Mongo Db Server , verileri görebilmek için grafiksel arayüz sağlayan Mongo Compass uygulamasını kurmamız gerekiyor. Kurulumlar için mongodb web sayfasını kullanabilirsiniz

Eclipse kullanıyorsanız içerisinde tomcat server ile beraber geliyor . Server kurulumu yapmadan , run as java application diyerek tomcat server ile uygulamayı ayağa kaldırabiliriz.

Servisimiz ve veri tabanımız hazır . Küçük bir test yapalım. Postman kullanarak ekleme metoduna istek gönderiyoruz. Başarılı mesajını aldık . Kayıtlar eklenmiş olmalı.

Eklediğimiz dataları göstermek için mongodb compass uygulamasını kullanıyoruz . Yerel bağlantı linkini yazıp connection diyoruz.

Eklediğimiz tüm kitaplar burada gözüküyor.

Bu yazıda spring uygulamasının ayağa kaldırarak mongo veri tabanı ile haberleştirdik. Postman ile testini gerçekleştirdik. Yazıyı zorlaştırmadan projeyi genel hatlarıyla anlatmaya çalıştım. Bazı noktalarda araştırabileceğiniz linkler bıraktım. Projenin tamamına bu linkten erişebilir , detaylı inceleyebilir ve deneyebilirsiniz.

--

--

Bedrettin Akyüz
Kodcular
Writer for

Software Developer , Usually #Java find me at Linkedin|Github/@bedrettinakyuz