Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

Retrofit

Tanım: Android'da Http üzerinde servisleri çağırmak için geliştirilen bir kütüphane. Converter'lar ile jsoni xml gibi veri transfer tipleri ile java nesnelerini eşleyebilmektedir

Retrofit İle Rest Servisi Çağırma Örneği



Retrofit bir REST servisini GET ile çağrılması ve otomatik olarak bind edilmesi mümkündür. Aşağıdaki örnekte bu anlatılmaktadır:
Aşağıdakiler Gradle'a eklenir:


compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'


Converter olarak gson kullanacağız.


Dönüş nesnesi aşağıdaki gibidir :


public class CategoryResponse {

    private Category[] categories;
    private Item[] items;

    public Category[] getCategories() {
        return categories;
    }

    public void setCategories(Category[] categories) {
        this.categories = categories;
    }

    public Item[] getItems() {
        return items;
    }

    public void setItems(Item[] items) {
        this.items = items;
    }
}


Çağrılacak servis için bir interface yazılması gerekiyor :


public interface CategoryService {

@GET("/rest/category/child/{categoryId}")
public Call<categoryresponse> getChild(@Path("categoryId") long categoryId);

}
Yukarıdaki categoryId ile verilen bir kategorinin alt kategorileri alan bir servis için interface yaratılmıştır.


Category ve Item sınıfı temel özellikler içeren sınıflardır. Detayı bu örnek için önemli değildir.


Aşağıdaki gibi basit bir birim testi yaparak servis test edilebilir :


@Test
public void categoryChildTest() throws Exception{

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://www.example.com")
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    CategoryService service = retrofit.create(CategoryService.class);

    Call responseCall=service.getChild(0);

    Response response =  responseCall.execute();

    assertTrue(response.isSuccess());

    assertNotNull(response.body());

    assertNotNull(response.body().getCategories());

    Category[] list=response.body().getCategories();

    for(Category c : list){

        System.out.println(c.getName());

    }

}




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir