10 Temmuz 2016 Pazar

Spring Boot Actuator


Spring Boot Actuator , Spring Boot'un alt projesidir ve temel amacı oluşturulan Web Servise ait çeşitli bilgilerin (servisin durumu , ayarlar , hata sayfası , versiyon detayları , ...) görüntülenmesini sağlar.

Spring Boot Actuator kullanabilmek için projemizdeki pom.xml içerisine aşağıdaki kodu eklemeliyiz;

Actuator Endpoints

1. actuator : Actuator ile kullanabileceğimiz Endpoint lerin linklerinin listesini gösterir

2. autoconfig : Otomatik yapılan konfigrasyonların  bilgisini gösterir 
3. beans : Uygulamada kullanılan bean lerin bilgilerini gösterir
4. configprops : Uygulamada kullanılan ayarların özelliklerini gösterir
5. dump : Thread lerin bilgisini gösterir 
6. env : Spring in cofig için kullandığı özellikleri gösterir (kullanılan java sürüm bilgileri , cihaz bilgileri vs)
7. health : Servisin durumu hakkında bilgi verir , eğer serviste bir sıkıntı varsa status : "Down" yazar sıkıntı yoksa aşağıdaki gibi status : "UP" olur.
8. metrics : Memory , heap , ...  şeklinde o andaki servis durumunu gösterir
9. mappings : Kendi oluşturduğumuz Endpoint lerin bilgilerini gösterir 
10. trace : Servise gelen istek bilgilerini gösterir 

Daha detaylı anlatım için bu yazıyı yazarken faydalandığım linke göz atabilirsiniz;
http://www.hascode.com/2016/03/setting-up-an-oauth2-authorization-server-and-resource-provider-with-spring-boot/

Şimdilik bu kadar , iyi çalışmalar!

18 Haziran 2016 Cumartesi

mihenk.js Bubble Chart Eklendi


Ara ara geliştirmeye devam ettiğim ilk açık kaynak çalışmam mihenk.js e aşağıdaki linklerden ulaşabilir ve kullanabilirsiniz;

http://guvenir.github.io/Mihenk/
https://github.com/Guvenir/mihenkjs



Şuan itibariyle Mihenk projesi içerisinde 6 adet grafik mevcut. Bunlardan sonuncusu başlıktan da anlaşılacağı gibi Bubble Chart. Bubble Chart önceki grafiklerde de mevcut olduğu gibi zoom ve drag özellikleri mevcuttur. Veri formatı ise aşağıdaki gibidir;


Öncekilerden farklı olarak veri formatı içerisinde "r" bulunmaktadır. Bu da bubble ların yarıçapını temsil eder.

mihenk.js nin kullanımı için önceki yazılarıma göz atabilirsiniz. Herhangi bir sorunuz olursa bana ulaşabilirsiniz. Şimdilik bu kadar , size iyi çalışmalar!

Spring Boot Banner Değiştirme


Spring Boot ilk çalıştığı andaki banner aşağıdaki gibidir , mutlaka dikkatinizi çekmiştir.


Buradaki Spring yazısını kendimiz kolay bir şekilde özelleştirebiliriz. Bu açılış yazısını değiştirmenin çok bir önemi yok ancak yine de istediğimiz gibi özelleştirebileceğiimiz için böyle bir yazı yazmak istedim.

Bunu yapabileceğimiz bir çok generator olabilir , aşağıdaki ise benim faydalandığım site;

http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20

Örnek;
                                   _      
  ___   __ _ _   ___   _____ _ __ (_)_ __ 
 / _ \ / _` | | | \ \ / / _ \ '_ \| | '__|
| (_) | (_| | |_| |\ V /  __/ | | | | |   
 \___/ \__, |\__,_| \_/ \___|_| |_|_|_|   
       |___/                              
                                        
Bu linkten farklı yazı tiplerine göre istediğimiz yazıyı oluşturabiliriz , ancak buradan renkli banner oluşturamayız.

Renkli banner içinde aşağıdaki linke göz atabilirsiniz ;

http://toedter.com/2015/12/13/creating-colorful-banners-for-spring-boot-applications/

Kendimize ait yazıyı oluşturduktan sonra yazıyı banner.txt olarak kaydedelim ve bu txt dosyasını resources klasörünün içine ekleyelim. Projeyi çalıştırdığımız zaman  otomatik banner ımızı görecektir.


Şimdilik bu kadar , size iyi çalışmalar!

12 Haziran 2016 Pazar

AngularJS Routing


AngularJS ile tek sayfa biçiminde yönlendirme yapabiliriz. Bunu bir örnekle açıklamaya çalışayım ;
Örneğin bir blog sitemiz var ve ana sayfa da üstte navbar solda da sırası ile yazıların linki var. Her bir yazı ayrı bir HTML dosyası içerinde tutuluyor olsun. Linklere tıkladığımda da anasayfa da sadece içeriğin gösterileceği content kısmı değişsin istiyorum. İşte böyle bir yapıyı AngularJS route (ng-Route) ile kolay bir şekilde yapabiliriz. Böyle bir yapının özel bir adı var mı bilmiyorum ancak bu şekilde açıklayabildim. : )

Yukarıda yaptığım açıklamadaki yapıya ihtiyacım vardı ve biraz araştırarak çok basit bir örnek yaptım. Bu çalışır haldeki örneğe aşağıdaki linkten erişebilirsiniz;

https://github.com/Guvenir/AngularOrnekler

Kodlara göz atmaya geçmeden önce hatırlatmak istediğim bir husus var. AngularJS bazen sunucu gerektirmeden de çalışabiliyor , yani kodları ekleyip html dosyasına çift tıkladığımızda çalışıyor hata almıyoruz ancak bu durum her zaman böyle değildir , bir sunucu üzerinde çalıştırmakta fayda var. Yukarıdaki linkten projeyi indirip index.html yi direk tarayıcı da açarsak hata alırız. Bunun için AngularJS projemizi bir sunucuda çalışacak şekilde ayarlamalıyız.

Proje son derece basit , aşağıdaki gibi;


Öncelikle angularjs cdn yi ekledikten sonra birde angular-route cdn yi projemize dahil ediyoruz aşağıda olduğu gibi;


Angular kodlarında module içerisine ['ngRoute'] ekliyoruz , daha sonrasında ise $routeProvider ile yönlendirmeleri yapıyoruz. 'otherwise' ise rastgele girilen url ler için yönlendirilecek sayfayı belirtiyor.  $locationProvider.html5Mode(true) ise linkler açıldığında url de çıkan '#' silmek için. Her bir when içerisinde yönlendirilecek sayfa ve bu sayfa için kullanılacak controller belirtiliyor. Böylece her sayfa için farklı controller kullanmamız sağlanıyor.

Şimdilik bu kadar , size iyi eğlenceler!

11 Haziran 2016 Cumartesi

Spring Boot deploy war


Bildiğimiz gibi Spring Boot içerisinde Tomcat gömülü olarak geliyor ve projeyi çalıştırdığımız zaman bu sunucuyu kullanarak çalışıyor. Ancak biz yaptığımız herhangi bir çalışmayı bu şekilde sunuculara aktaramayız. Öncelikle web e taşıyabilmek için war şeklinde deploy etmeli ve içerisindeki Tomcat i pasif hale getirmeliyiz. Bu yazının konusu da tam olarak bu , öncelikle bu yazının kaynağını vererek başlayayım ;

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

İlk olarak projemizin başlatıldığı class a SpringBootServletInitializer extend edip class ın içerisine override  SpringApplicationBuilder methodunu ekleyerek sunucunun main sınıfımızı bulmasını sağlıyoruz.


Sonrasında ise pom.xml içerisinde deploy türünü war olarak belirtiyoruz.
<packaging>war</packaging>

Son olarak pom.xml içerisine aşağıdaki gibi dependency ekleyerek projemizi sunucuda çalışabilir hale getiriyoruz.

Şimdilik bu kadar , size iyi eğlenceler!

9 Haziran 2016 Perşembe

mihenk.js Uygulamaları 1



Bundan önceki yazımda Mikenk in ne olduğundan bahsetmiştim. Bu yazımın temel konusu ise mihenk.js i kendi projemize nasıl dahil ederiz ve grafikleri nasıl kullanabiliriz olacak. Öncelikle geliştirmekte olduğum açık kaynak mihenk.js projesine aşağıdaki linkten erişebilirsiniz;

guvenir.github.io/Mihenk/

Kodları indirmek için ;

https://github.com/Guvenir/mihenkjs

Javascript ve css kodlarımızı indirdikten sonra html sayfamıza önce d3.js linkini sonra da mihenk.css ve mihenk.js yi ekleyelim. Aşağıdaki gibi ;


Grafiğin png çıktısını alabilmek için saveSvgAsPng yi de indirip koda eklememiz gerekiyor.  Sonrasında da html içerisine grafiğin çizdirileceği div i tanımlıyoruz. Bu div içerisini de boş bir svg tag ı açıp kapatıyoruz.

Html tarafı hazır olduğuna göre artık Javascript tarafında verimizi uygun formatta hazırlayıp grafiğimizi çizdirebiliriz.

Veri formatını inceleyecek olursak xdata  x ekseni için gerekli değerler , ydata y ekseni için gerekli verilerdir. Opt ise grafikle ilgili değişiklik yapabileceğimiz yerdir. x_labels ve y_label ilgili eksenler için farklı şekilde label eklemek istiyrosak (örneğin x ekseninde grafik oluşturulurken sayısal veri girildi ancak ben orada tarih yazmasını istiyorsam x_labels dizisi içerisine tek tek x verisine karşılık gelecek tarih bilgilerini ekleyebilirim) bu diziler sayesinde kolayca ekleyebiliriz.

Oluşturulan grafiklere hem çift tıklayarak hem de farenin tekerini çevirerek yakınlaşabilir , sürükleyerek grafiğin konumunu değiştirebiliriz. Bunu yapabilmemiz için ise opt içerisindeki zoom özelliği true olmalı ve x_label , y_labels içerisinde etiket olmamalıdır. Bunun sebebi ise x ve y eksenleri için sayısal veri girildiğinde grafiğe yakınlaştığımızda değerleri kendisi hesaplayabilir ancak etiket koyarsak yakınlaşma durumunda yeni etiket bilgilerini kendisi ekleyemeyeceği için grafik bozuluyor. Bundan dolayı zoom özelliği true olsa bile x veya y ekseni için ya da her ikisi için etiket belirlenmişse zoom özelliği devre dışı kalıyor.

xlab ve ylab ise grafik eksenlerinin adlandırılması için kullanılmaktadır. Örneğin hız/zaman grafiği için ylab hız , xlab zaman şeklinde düzenleyebiliriz.

color bir dizidir ve içerisine eklediğimiz renkleri sırası ile grafikte kullanır. "#456" şeklinde renk kodlarımızı ekleyebiliriz. Örneğin ["#987","#123456"] renklerini eklediğimiz zaman grafikte diyelim ki 6 adet bar var  ise sırası ile renklendirir ve 3 adet ilk renk için 3 adette ikinci renk için bar olur. Bir nevi gruplandırma yapmış oluruz.

div_id içerisine ise html tarafında oluşturduğumuz ve grafiğin çizileceği div in id sini yazıyoruz. Doğru yazmadığımız zaman grafik çizilmeyecektir.

mihenk.barchart(mihenkdata);

Veriyi uygun formatta hazırladıktan sonra yukarıdaki gibi çağırmamız yeterli olacaktır.


Şimdilik bu kadar , eğer bir sorunuz olursa bana ulaşabilir veya yorum bırakabilirsiniz.

3 Haziran 2016 Cuma

Mihenk



Bugüne kadar bir çok çalışmam oldu ancak bir çoğu çeşitli nedenlerden dolayı gün yüzüne çıkamadı , yer altında kaldı. Gün yüzüne çıkabilen nadir çalışmalarımdan birisi de Mihenk'tir. Mihenk d3.js tabanlı bir grafik kütüphanesidir. Bilmeyenler için d3.js  büyük verilerin görselleştirilmesi için kullanılan açık kaynak bir kütüphanedir , günümüzde kullanılan gelişmiş grafik kütüphanelerinin bir çoğu d3.js ile geliştirilmiştir. Svg tabanlı grafikler elde etmemizi sağlar. Mihenk'te benim kendimce d3.js ve özelliklerini kullanarak geliştirmeye başladığım açık kaynaklı bir grafik kütüphanesidir. 

http://guvenir.github.io/Mihenk/

https://github.com/Guvenir/mihenkjs

Yukarıdaki ilk linkten kütüphanenin sayfasına erişebilir ve grafikleri görebilirsiniz. Hemen altındaki linkte ise mihenk.js erişebilir ve kodları inceleyebilirsiniz.

Temel özellikleri ;

  1. GPLv3 lisansı altındadır (Kodları istediğiniz gibi kullanıp , değiştirebilir ve yeniden yayınlayabilirsiniz)
  2. Responsive tasarım (Mobil , tablet ve pc üzerinde sorunsuz çalışmaktadır)
  3. Kolay kullanım (Sade veri formatı sayesinde grafiği kolay bir şekilde kişiselleştirebiliriz)
  4. Chrome ve Firefox üzerinde sorunsuz çalışıyor
  5. Ek kütüphaneler kullanarak PNG ve SVG formatında çıktı alabiliyoruz
  6. Zoom ve Drag özelliği mevcut (Grafiğin üzerine gelip çift tıklayarak ya da farenin tekerini çevirerek yakınlaşabilir yine fare ile sürükleyip grafiğin konumunu değiştirebiliriz)
Başlangıç aşamasında 5 adet kullanılabilir grafik mevcut ;
  1. Bar  Chart (Horizontal)
  2. Bar Chart (Vertical)
  3. Box Chart
  4. Error Chart
  5. Line Chart
Sonraki süreçte yeni grafikler eklemeyi , mevcut grafiklerin üzerinde düzeltmeler ve yeni özellikler eklemeyi planlıyorum ama zaman ne getirir ne götürür bilinmez.

Ayrıca Mihenk ilk açık kaynaklı projem olması sebebiyle benim için özel bir yere sahip.

Bu yazı kısaca bir tanıtım olsun , sonraki yazılarımda mihenk.js i nasıl kendi projemize dahil edebilir ve kullanabiliriz ona değinmek istiyorum.

Şimdilik bu kadar ,  size iyi eğlenceler : ) 

20 Mayıs 2016 Cuma

Spring Boot - Swagger UI Entegrasyonu


Swagger Rest Servisler için kullanılan açık kaynaklı bir dökümantasyon aracıdır. Birçok dil ile birlikte kullanılabilir ve kendi içerisinde de swagger-core , swagger-ui , swagger-editor ... oldukça fazla modül bulunmaktadır. Ben bunlardan sadece swagger-ui kullandım ve bu yazının temel amacı da kurulumunun nasıl yapıldığı ve ne işimize yaradığıdır.

http://swagger.io/
https://github.com/swagger-api

Swagger UI projemize dahil ettiğimizde kendi sistemimizi daha düzenli bir halde görüntüleyebiliriz ve test edebiliriz.


Yukarıdaki resimden de anlaşıldığı gibi kendi Rest Api miz içerisindeki Controller ları ve içerisindeki methodları , bunların GET , POST , DELETE , ... gibi Http methodlarını görebiliyoruz.



Yukarıdaki resimde de görüldüğü gibi  '/test' isminde GET methoduyla çağırabileceğimiz ve tester methoduyla çalışan(Tester kendi verdiğim method ismi , bu kısımları yazdığımız controller daki method isimlerinden otomatik çekiyor) bir istek yapısı var.  Bu isteği GET methodu olduğu için direk tarayıcının adres satırına yazarak çalıştırabiliriz. Eğer GET değilde POST , DELETE veya PUT olsaydı bunları çalıştırabilmek için Postman veya client tarafındaki kodlarla ya da curl kullanabilirdik. İşte Swagger-ui ın diğer bir güzel özelliği de kendi apimizdeki oluşturduğumuz istekleri parametreleriyle birlikte test etmemizi sağlamaktadır. Bunu yaparkende curl kullanıyor.



Test ederken bize Curl kodunu , istek URL sini  , sonuç kodunu ve sonucu ve başlık kısmını dönüyor.

Kısaca ne işe yaradığından ve kullanımından bahsettikten sonra Spring Boot entegrasyonuna geçebiliriz;

Kurulum için aşağıdaki linte anlatılanları sırası ile yapmamız yeterli , aynı işi tekrar etmemek için yazıyı daha fazla uzatmıyorum. Herhangi bir sıkıntınız , sorunuz veya isteğiniz olursa her zaman yorum bırakabilirsiniz.

http://heidloff.net/article/usage-of-swagger-2-0-in-spring-boot-applications-to-document-apis/

Şimdilik bu kadar size iyi eğlenceler!
 

9 Mayıs 2016 Pazartesi

Grafik Kütüphanem


Bu çalışma 4 ay gibi kısa bir sürede(Javascript i bilmeden sıfırdan başladığımı düşünürsek) istek üzerine yapmış olduğum bir grafik kütüphanesidir.  Bu kütüphanede 24 adet farklı grafik bulunmaktadır. Kütüphanenin yapımında d3.js kullanılmakta ve grafikler özel bir veri formatına sahiptir yani özelleşmiş durumdadır ve sadece tasarlanan proje içerisinde çalışmaktadır. Normal kullanım için uygun değillerdir!  Grafiklerin genel özellikleri aşağıdaki gibidir;

  1. Dinamik yapıda
  2. Responsive  
  3. Cross browser (Safari , Mozilla Firefox ve Chrome üzerinde test edildi)
  4. Png ve Svg formatında çıktı 
Bu özelliklere sahip grafiklerin 5 tanesini AngulaJS kullanarak projeye de bizzat kendim dahil ettim. Bu 5 grafik sorunsuz şekilde çalışmaktadır. Süreç devam ederken projede grafiklerin kullanımından vazgeçildiği için diğerlerini sisteme bağlayamadan olduğu gibi bıraktım. 

Aşağıdaki videodan grafiklerin taslak halini görebilirsiniz.  Oluşturulan bu grafiklerin tamamının renk ve tasarımları yaptıran kişilere aittir!!!





21 Mart 2016 Pazartesi

oMovie



oMovie hızlı bir şekilde film ve dizi sorgulamamızı sağlayan basit ama işlevsel bir uygulamadır. Aynı zamanda film ve dizi detaylarını inceleyebilir , fragmanını izleyebilir ve kendi izleme listemizi oluşturabiliriz. Film ve dizileri telefonumuzda yüklü bulunan sosyal ağlar veya mail aracılığıyla paylaşabiliriz.

Aşağıdaki linkten uygulamaya erişerek inceleyebilirsiniz.

oMovie




Bu uygulamayı Spring + Android kullanılarak yaptım. Boyutu ise şuanda 3.6 MB.


12 Mart 2016 Cumartesi

Spring REST ve Cors


Spring ile REST Web Service yazdığımızda servisimize kontrol amaçlı kendi tarayıcımızla erişip çalışıp çalışmadığını görebiliriz. Ancak iş servis hazırlandıktan sonra arayüz tasarımına geldiğinde servisimize istek attığımızda büyük ihtimalle hata ile karşılaşacağız. Bunun temel sebebi servise erişim izinlerini tanımlamamış olmamızdır. Biz kendi servisimizi herkesin kullanımına açabilir veya belirli ip adreslerinin erişimine açabiliriz. Bunun Web teknolojilerindeki adı Cors dur ve benzer ayarlamaları servisi hangi dille yazarsak yazalım tanımlamamız gerekmektedir.

Aşağıdaki linkte bu konu daha detaylı olarak açıklanmıştır , isterseniz göz atabilirsiniz;

http://stackoverflow.com/questions/31724994/spring-data-rest-and-cors

Java da Cors ayarlarını aşağıdaki gibi yapabiliriz;
Bu kod servise erişmek isteyen bütün clientlere cevap verir. Bunun yerine belli bir ip nin servisimize erişmesini istiyorsak kodu

config.addAllowedOrigin("http://localhost:8587/");//İstediğimiz ip adresine izin verebiliriz!

şeklinde düzenleyebiliriz. Aynı şekilde diğer Http methodlarınıda ekleyebiliriz. Şimdilik bu kadar , iyi çalışmalar!

19 Şubat 2016 Cuma

Spring İlk Örnekler


Normalde Spring e yeni başlayanlar için kendi sitesinde birbirinden basit ve işlevsel uygulamalar mevcut. Bu açıdan benim ilk örnekler isimli bir yazı yazmam son derece gereksiz görülebilir. Ancak Spring in kendi sitesindeki örneklerden sonra işleri biraz büyüteyim ve kendim bir proje başlatayım dediğinizde işler biraz daha değişiyor , zorlaşıyor. Bu sebeple birbirinden farklı ve basit 5 konu için bir başlangıç noktası olmak üzere  uygulamalar yaptım. Bu uygulamaları da sizlerin işine yarayacağını düşünerek paylaşmak istedim. Bu uygulamaların kodlarına Github üzerinden erişebilirsiniz.

1. Taslak 

Örnek bir Java projesinin kaba bir taslağını oluşturdum. Service , controller  , interfaces kullanımı vs. örnek olması amacıyla hazırladım.

https://github.com/Guvenir/Springilkornekler/tree/master/Taslak

2.  Spring Rest Client 

Bir önceki yazılarımda Spring Boot ile bir web servis örneği yapmıştım. Bu uygulamada ise herhangi bir web servis için oluşturulmuş örnek bir client uygulaması bulunmaktadır. Bu uygulamadaki kullanım ile Android içinde client uygulamaları geliştirilebilir. Aşağıdaki vieoda da bu uygulamayı yapmıştım;

https://github.com/Guvenir/Springilkornekler/tree/master/SpringRestClient



3. Mongo Connect 

Bu uygulama ise Mongo ile temel seviyede bağlantının sağlandığı , gerekli annotasyonların uygun şekilde kullanıldığı basit bir console uygulamasıdır.

https://github.com/Guvenir/Springilkornekler/tree/master/MongoConnect

4. Spring Rest Mongo

Bu uygulamada da Web servise veri tabanı olarak MongoDB yi bağladım.

https://github.com/Guvenir/Springilkornekler/tree/master/SpringRestMongo

5. Arduino Uygulaması

Son olarakta yukarıdaki örneklerden yola çıkarak basit bir web servis uygulaması yaptım. Bu uygulamaki temel amaç Arduino üzerine bağlı sıcaklık sensöründen(dht11) gelen veriyi Ethernet Shield üzerinden Spring Boot ile açtığım servise yollamak. Servise gelen verileri ise MongoDB içerisinde saklıyoruz. Projenin içerisinde Arduino kodlarıda mevcut. Bu uygulamayı bizzat test ettim ve çalışıyor. Yukarıda da belirttiğim gibi bunlar başlangıç için yapılmış basit birer uygulamadır. Bu uygulamada birlikte kullanılan teknolojiler ise Arduino , Spring Boot ve MongoDB.

https://github.com/Guvenir/Springilkornekler/tree/master/Arduino


7 Şubat 2016 Pazar

Spring Rest Client Uygulama


Bir önceki yazımda Spring Boot ile yaptığım başlangıç aşamasındaki Web Servis uygulama videolarını paylaşmıştım. Bu yazımda ise yine Spring kullanarak nasıl bir Rest Web Servisten veri çekebileceğimize değindiğim 10 dakikalık uygulama videosunu paylaşıyorum.

Normal bir Web Servis için Spring dışında nasıl verinin çekildiğini bilmiyorum ancak gerekli araştırmayı yaptım ve gördüm ki Spring her zamanki gibi bizim işimizi kolaylaştırıyor. Bu yüzden Java öğreniyorum ya da Java ile proje geliştiriyorum diyen arkadaşlar bence Spring e bir göz atmalı.

Aşağıda uygulamanın videosuna göz atabilirsiniz.(Artık kodları yazılarıma aktarmak hem zahmetli hem de anlaşılabilirliği azaldığı için genelde video kaydı paylaşıyorum.)  Aynı zamanda bu basit client uygulamasının kodlarına aşağıdaki linkten de erişebilirsiniz.

Kodhttps://github.com/Guvenir/Springilkornekler/tree/master/SpringRestClient



Son olarak bu yöntemin Android üzerinde de çalıştığını belirteyim. Şimdilik bu kadar , çalışmaya çabalamaya devam!

17 Ocak 2016 Pazar

Restful Web Service (Spring Boot)


Aylar önce SOAP Web Service öğrenmeye karar verdim ve bir süre Java ile bu işin nasıl yapıldığını araştırdım , küçük örnekler yaptım ama pek olumlu sonuçlar alamadım. O aşamadan sonra Web Servislerinin  öğrenmenin kolay olmayacağını düşündüm ve bundan dolayı da fazla uğraşmadım açıkçası. Ancak Web Servis çok önemli olduğu için bir şekilde öğrenmem gerektiğini düşünerek bu seferde şansımı REST te denemek istedim hem de Spring ile. Bu arada Spring i de yeni yeni öğreniyorum ve birçok modülden oluştuğu için son derece karmaşıktır diye düşünüyordum.  Daha sonra araştırmalara başladım ve karşıma ilk Spring Boot çıktı. Aşağıda yer alan linkteki örneği yeniden yazarak yaptım.

https://spring.io/guides/gs/rest-service/

Sonuç ise pratik ve güzel oldu. 15 dakika içerisinde basit bir Web Servis yapmış oldum ki yapıyı anlayınca kompleks işleri de aynı mantıkla yapabiliriz. Aynı zamanda Spring'in kompleks bir yapıda olmadığını aslında işleri son derece kolaylaştıran bir framework olduğunu gördüm. Unutmadan Tomcat sunucu embed durumda yani kütüphanelerle birlikte geliyor , herhangi bir kurulum yapmaya gerek yok. 8080 portu kullandığı için bu portu meşgul eden uygulamaları ayarlamamız gerekiyor.

Tabi ki Web Servis yapmak için önce mantığını ve işleyişini öğrenmemiz gerekiyor. Bunun içinde aşağıdaki linkten faydalanabiliriz. Linkte Http metotlarını ve Http statü kodlarından bahsediyor.

http://spring.io/understanding/REST

Bu aşamalardan sonra ise Udemy üzerinde son derece sade bir şekilde giriş seviye ücretsiz bir eğitim var  bunu izleyerek başlayabiliriz.

https://www.udemy.com/restful-web-service-with-spring-boot/

İlk başlarda ben bireysel çalışırken birkaç video çekmiştim isterseniz onları da izleyerek Spring REST e başlayabilirsiniz. Başladıktan sonra nasılsa gerisi gelir!