FiiPractic 2015 - Adroid Pro - Day 3 - API Day
-
Upload
diaconu-andrei-tudor -
Category
Software
-
view
102 -
download
4
Transcript of FiiPractic 2015 - Adroid Pro - Day 3 - API Day
Android ProAPI Day
– Test Android
“Aplicatia ta foloseste un API (lastfm), sa spunem ca in format JSON. Cum procedezi sa
consumi aceste date?”
Http?REST?
Request + Raspuns
[Header]+[Body] ——URL—> [Server]
[Header]+[Body] <————— [Server] ^JSON
Exemplu
http://rest-service.guides.spring.io/greeting
{ "content": "Hello, World!", "id": 3123}
JSON?
JSONObject jObj = new JSONObject(data);Greeting greeting = new Greeting();greeting.content = jObj.getString(“content");greeting.id = jObj.getLong("id");
Http?
HttpClient httpclient = new DefaultHttpClient();HttpResponse response = httpclient.execute(new HttpGet(URL));
ByteArrayOutputStream out = new ByteArrayOutputStream();response.getEntity().writeTo(out);responseString = out.toString();out.close();
Gson
class Greeting{ String content; long id;}
Gson gson = new Gson();Greeting greeting = gson.fromJson(response, Greeting.class);
Jackson
class Greeting{ String content; long id;}
ObjectMapper mapper = new ObjectMapper();Greeting greeting = mapper.readValue(responseString, Greeting.class);
Retrofit
interface GreetService { @GET("/greeting") Greeting getGreeting(); @GET("/altceva") Altceva getAltceva();}
RestAdapter restAdapter = new RestAdapter.Builder() .setServer("http://rest-service.guides.spring.io") .build();
GreetService greetService = restAdapter.create(GreetService.class);
Retrofit
parametri
http://rest-service.guides.spring.io/greeting?name=Bob
public interface GreetService { @GET("/greeting") Greeting getGreeting(@Query(“name") String name);}
Retrofit
Async
public interface GreetService { @GET("/greeting") void getGreeting(@Query("name") name, Callback<Greeting> callback);}
Retrofit
@GET, @POST, @PUT, @DELETE, @HEAD@Query, @Path, @Body, @Header
@Headers
…
Spring Android
RestTemplate restTemplate = new RestTemplate();restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());Greeting greeting = restTemplate.getForObject(url, Greeting.class);
Feign
interface GreetService { @GET("/greeting") Greeting getGreeting();}
GS gs = Feign.builder() .decoder(new GsonDecoder()) .target(GreetService.class, “https://…");
gs.getGreeting();
Volley, Retrofit, Ion (koush) si alte librarii similare trateaza mai mult partea de networking decat cea de REST si discutam la cursul 4 despre toate.
Work
Level 1: - Incarcati greeting de pe: http://rest-service.guides.spring.io/greeting
Level 2: - Faceti un consumator pentru GitHub, Flickr sau LastFM. - Implementati autentificarea pentru serviciul ales (Nu ma refer la un
ecran de login, hardcodati credentialele)
Level badass: - Consumati un serviciu pe format XML - Folositi adnotari Jackson ca sa aveti un denumiri diferite in POJO
fata de JSON - Extra bonus la tabla, referitor la cast automat.