Retrofit
Retrofit é uma biblioteca popular do Android que facilita o processo de fazer solicitações de rede em aplicativos Android. Ele é especialmente útil para consumir APIs RESTful, permitindo que você envie solicitações HTTP e receba respostas de forma fácil e eficiente. Vamos explorar como usar o Retrofit para realizar operações de rede em um aplicativo Android.
1. Adicionando a Dependência Retrofit
Primeiro, adicione a dependência Retrofit no arquivo build.gradle
do seu módulo de aplicativo:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
2. Definindo uma Interface de API
Crie uma interface que define as operações da API. Por exemplo:
public interface ApiService {
@GET("posts/{id}")
Call<Post> getPost(@Path("id") int postId);
@GET("posts")
Call<List<Post>> getPosts();
}
Neste exemplo, Post
é uma classe de modelo que representa um post na API.
3. Configurando o Cliente Retrofit
Configure um objeto Retrofit
usando a URL base da API e a interface ApiService
:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService apiService = retrofit.create(ApiService.class);
4. Fazendo Solicitações de Rede
Agora você pode usar apiService
para fazer solicitações de rede. Por exemplo, para obter um post por ID:
Call<Post> call = apiService.getPost(1);
call.enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
if (response.isSuccessful()) {
Post post = response.body();
// Faça algo com o post
} else {
// Trate erros de solicitação não bem-sucedidos
}
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
// Trate falhas na solicitação
}
});
5. Adicionando Interceptadores e Conversores
O Retrofit permite que você adicione interceptadores para manipular solicitações e respostas. Além disso, você pode adicionar conversores para processar a resposta antes de ser manipulada pelo código.
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) // Logging das solicitações
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/")
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
6. Trabalhando com Métodos HTTP
O Retrofit suporta vários métodos HTTP, incluindo GET, POST, PUT, DELETE, etc. Você pode usá-los na sua interface de API, por exemplo:
public interface ApiService {
@POST("posts")
Call<Post> createPost(@Body Post post);
@PUT("posts/{id}")
Call<Post> updatePost(@Path("id") int postId, @Body Post post);
@DELETE("posts/{id}")
Call<Void> deletePost(@Path("id") int postId);
}
O Retrofit é uma ferramenta poderosa para trabalhar com APIs em aplicativos Android. Ele fornece uma maneira simples e eficaz de fazer solicitações de rede e manipular dados JSON. Lembre-se de lidar com os casos de erro adequadamente e sempre realizar operações de rede em uma thread separada para evitar bloqueios no thread principal do aplicativo.