Cvičenie 10 - REST API a spracovanie dát
Cieľom desiateho cvičenia je precvičiť si prácu s REST API službami a spracovanie prijatých dát.
Spracovanie dát prostredníctvom RetroFit2
Pre pripojenie k webovému API použijeme knižnicu RetroFit2, ktorá zjednodušene predstavuje HTTP klienta. Knižnica vie pracovať v dvoch režimoch:
- Synchrónne: Tento prístup je vhodné použiť v prípade, ak údaje získavame pomocou vlastnej sužby (service).
- Asynchrónne: Vhodný ak údaje získavame priamo v hlavnom vlákne a slúži ako náhrada triedy AsyncTask
1. V prvom kroku pridáme do gradle súboru aplikácie závislosti pre com.squareup.retrofit2
a povolenia do manifestu
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
<uses-permission android:name="android.permission.INTERNET"/>
2. Vytvoríme triedu UserModel
a pridáme getter a setter pre vytvorené premenné:
3. V ďalšom kroku vytvoríme interface IApiDefinition
- Samotné rozhranie môžeme začať vytvárať podobne, ako ktorékoľvek rozhranie v Jave
- Avšak pridáme anotáciu HTTP metódy @GET, ktorá nám umožňuje zapísanie koncového bodu a jednotlivých parametrov priamo s ich hodnotami
- V prípade ak by sme chceli použiť špecifický parameter využijeme anotáciu @Query
4. Vytvorime triedu ApiTools
reprezentujúcu Retrofit builder, kde budeme potrebovať:
5. Odpoveď zo servera dostaneme vo formáte JSON, preto vytvorime triedu JsonTools
pre spracovanie:
6. V poslednom kroku upravíme MainActivity
- Vytvoríme objekt typu
Call<JsonArray>
- Zavoláme nad ním metódu enqueue, ktorá obsahuje dve metódy
- onResponse() - metóda, kt. sa zavolá v prípade úspechu
- onFailure() - metóda, kt. sa zavolá v prípade neúspechu
- Následne upravíme kód metódy onResponse() a zobrazíme výsledok