14 Nisan 2017 Cuma

Restful Web Service Örnek Ugulamaları


Uygulamaların yapım sürecinde Netbeans IDE  kullanacağım. Öncelikle aşağıda görüldüğü gibi Maven tabanlı web projesi oluşturuyoruz. Neden Maven tabanlı derseniz ilerde kullanacağımız bağımlılıkarı yani Dependency' leri projeye dahil ederken bize yeteri kadar kolaylık sağlıyor.
Sunucu olarak  Apache TomCat or TomEE kullanacağım.




Projemizi oluşturduktan sonra ilk işimiz gerekli kütüphaneleri projemize dahil etmek olucak.
İlk olarak RestEasy kütüphanesini projemize dahil ediyoruz.  İncelemek isterseniz bu kütüphaneyi http://resteasy.jboss.org adresten inceleyebilirsiniz.

Projemizin Project File klasörü altında olan pom.xml  daosyasını açıp  bağımlılıklarımızı ekliyoruz.

<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs -->
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>3.1.0.Final</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-servlet-initializer -->
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-servlet-initializer</artifactId>
    <version>3.1.0.Final</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jackson-provider -->
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson-provider</artifactId>
    <version>3.1.0.Final</version>
</dependency>


Bağımlılıklarımızı ekledikten sonra projemizi Clean and Build edersek gerekli jar dosyalarını maven indirip proje classpath' ine koyacaktır. 

 

@GET 


JSON Uygulaması(@GET)


Source Packages klasörü altında Application adında bir package oluşturup içinde ApplicationClass adınıda yeni bir class oluşturuyoruz. Bu classımız Application sınıfında kalıtılacaktır. Kod yapısı aşağıdaki gibidir.


@Application("rootService")  notasyanu ne diye sorarsanız  bizim projemizin url kısmının kökü yani başı diyebiliriz. İlerki bölümlerde görüntülü olarak paylaşacağım.



 Burdaki işlemlerimiz bittikten sonra yeni bir paket oluşturalım ve adı Pojo olsun. İçerisinde Person.java  adında yeni bir sınıf oluşturuyoruz.

Person.java 

package pojo;

public class Person {
    String name;
    String surname;
    String city;
    String country;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name= name;
    }
   public String getSurname() {
        return surname;
    }
    public void setSurname(String surname) {
        this.surname= surname;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city= city;
    }
   public String getCountry() {
        return country;
    }
     public void setCountry(String country) {
        this.country= country;
    }    
}


Sınıfımıza değişkenler tanımlayıp get- set medotlarını oluşturduk. Şimdi   getExample adında bir paket oluşturup İçerisinde  GetExampleJson.java sınıfını  oluşturuyoruz.

GetExampleJson.java

package getExample;
import pojo.Person;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import  javax.ws.rs.core.MediaType;

@Path("/getExample")         /*  getExample ve altındaki url isteklerini bu sınıf karşılar */ 
public class GetExampleJson {
    @GET                           /*Web servisimize veri sunar*/
    @Produces(MediaType.APPLICATION_JSON) /*Hangi tip veri döneceğini  ayarladık*/ 
    @Path("/getJsonValue") /* */
     public Person getJsonValue(){
         Person person = new Person();
         person.setName("Burhan");
         person.setSurname("Arslan");
         person.setCity("Istanbul");
         person.setCountry("Turkiye");
         return person;
     }
}

Şimdi uygulamamızı çalıştırıyoruz. İlk önce karşımızı aşağıda görüldüğü gibi boş bir sayfa dönecektir.


Biz burda url adresimizi sırasıyla  @Application("rootService") +@Path("/getExample") +  @Path("/getJsonValue") notasyonlarını ekliyoruz ve enter diyip adrese gidiyoruz. 



Karşımıza JSON formatında web servisimizden veri aldık.


XML Uygulaması(@GET)

GetExampleWithXmlOutput.java sınıfı oluşturup xml işlemlerini bu sınıfta uyguladım. Dilerseniz tek bir sınıf altında diğer işlemleride uygulayabilirdik.

@Path("/xmlOutput")
public class GetExampleWithXmlOutput {
    @GET
    @Produces(MediaType.APPLICATION_XML)
    @Path("/getPersonasXml")
    public PersonXml getPersonasXml(){
         PersonXml personxml = new PersonXml();
         personxml .setName("Burhan");
         personxml .setSurname("Arslan");
         personxml .setCity("Istanbul");
         personxml .setCountry("Turkiye");
         return personxml;
    }




 adresimize sırasıyla  @Application("rootService") +@Path("/xmlOutput") +  @Path("/getPersonasXml") notasyonlarını ekliyoruz ve enter diyip adrese gidiyoruz.  Web servicimiz ile xml veri formatındaki verilerimizi elde ettik.



@POST

JSON Uygulaması(@Post)

Post işlemlerimizi yapacağımız postExample adında yeni bir paket ve içerisinde PostExampleClass.java adında yeni bir sınıf oluşturuyoruz. Json ve xml formatındaki post işlemlerini bu sınıf içerisinde uygulayacağım. Dilerseniz siz farklı sınıflar içerisinde uygulayabilirsiniz.


@Path("/postExample")
public class PostExampleClass {

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Path("/postAValue")
    public void postAValueMetod(PersonXml person) {

        System.out.println(person.getName());
        System.out.println(person.getSurname());
        System.out.println(person.getCity());
        System.out.println(person.getCountry());
    }



    // XML FORMATI
    @POST
    @Consumes(MediaType.APPLICATION_XML)
    @Produces(MediaType.APPLICATION_XML)
    @Path("/postAValuegeribildirimliXml")

    public PersonXml personInXml(PersonXml person) {
        System.out.println(person.getName());
        System.out.println(person.getSurname());
        System.out.println(person.getCity());
        System.out.println(person.getCountry());
        return person;
    }


Sırasıyla değinecek olursan ilk olarak Json verilerimiz post edeceğiz. Bunun için öncelikle Json formatında  post edebilmemiz için elimizde json formatında veri olması gerekli.
Uygulamayı çalıştırdıktan sonra aşağıdaki gibi url adresimizi girersek json verilerimize tektrar ulşaşıp tekrar kullanmak için kopyalıyoruz.





Şimdi bu veriler Postman yardımyla  bu verileri uygulamamıza göndereceğiz. Postmanı Buradan indirip kullanabilirsiniz.
Aşağıdaki gibi postman özelliklerini belirleyip gerekli ayarları yapıyoruz.


Sağ üstte sent butonuna basınca Netbeans üzerinde output üzerinde verilerimiz aşağıdaki gibiyse post işlemimiz gerçekleşmiştir.





























Hiç yorum yok:

Yorum Gönder