RestRetorif, é uma Lib de auxilio para o uso da Lib da retrofit.
Retrofit é um Cliente HTTP seguro para Android e Java da Square, Inc. Retrofit - Retrofit.
Um cliente HTTP e HTTP / 2 para aplicativos Android e Java OkHttp - OkHttp.
- Retrofit requires at minimum Java 7 or Android 2.3.
- Maven
<dependency>
<groupId>com.github.faelmg18</groupId>
<artifactId>rhf-rest-retrofit</artifactId>
<version>0.0.3</version>
<type>aar</type>
</dependency>
- Gradle:
implementation 'com.github.faelmg18:rhf-rest-retrofit:0.0.4'
Crie a interface de comunicação
public interface RepositoryInterface {
@GET("search/repositories")
Call<GitRepositories> doGetListRepositoriesModel(@Query("q") String language,
@Query("sort") String sort,
@Query("page") int page);
}
}
Agora crie uma classe que irá herdar de AbstractAPIClient, o parâmentro T deverá ser a interface criada para fazer a comunicação com a lib da Retrofit
public class BaseApiCliente<T> extends AbstractAPIClient<T> {
private ProgressDialog dialog;
public BaseApiCliente(RHFViewInterface rhfViewInterface) {
super(rhfViewInterface);
}
@Override
protected String getBaseUrl() {
return "https://api.github.com/";
}
@Override
protected void onStart() throws Exception {
dialog = new ProgressDialog(getActivity());
dialog.setMessage("Aguarde...");
dialog.show();
}
@Override
protected void onEnd() throws Exception {
dialog.dismiss();
}
Crie sua classe de serviços que ira herdar de BaseApiClient como no exemplo! OBS: essa classe "BaseApiCliente" poderá ser uma classe do seu gosto
public class RepositoryService extends BaseApiCliente<RepositoryInterface> {
private static final String REPOSITORIES_LANGUAGE = "language:Java";
private static final String REPOSITORIES_SORT = "stars";
private static volatile RepositoryService instance;
public RepositoryService(RHFViewInterface activity) {
super(activity);
}
public static RepositoryService getInstance(RHFViewInterface rhfViewInterface) {
instance = new RepositoryService(rhfViewInterface);
return instance;
}
public void getRepositories(int page, final APIClientResponseListener<GitRepositories> listener) {
Call<GitRepositories> call = getInterface()
.doGetListRepositoriesModel(REPOSITORIES_LANGUAGE, REPOSITORIES_SORT, page);
execute(call, listener);
}
Obs: Sua Activity devera implementar a interface RHFViewInterface, com ela conseguimos fazer a chamda dentro de uma Thread de UI
Interface de chamda dos serviços para o uso da lib Retrofit Exemplos vamos fazer uma chamada API do git
Em sua activity crie uma instancia que faça a chamada da APi
public class MainActivity extends AppCompatActivity implements RHFViewInterface {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
RepositoryService.getInstance(this).getRepositories(0, new APIClientResponseListener<GitRepositories>() {
@Override
public void onSuccess(GitRepositories s) {
// No caso da API do Git ela nos devolve uma classe que contem uma lista dos respositórios mais usados.
// Use um adaptador para mostrar o resultado ao usuário.
GitAdapter adapter = new GitAdapter(s.getItems(), MainActivity.this);
listView.setAdapter(adapter);
}
@Override
public void onError(Call<GitRepositories> call, Throwable throwable) {
Toast.makeText(MainActivity.this, throwable.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
- Jackson Core databind - jackson-databind
- Jackson Core annotations - jackson-annotations
- Rafael Henrique Fernandes - Rafael Fernandes
Este projeto é licenciado sob a licença MIT - consulte o arquivo LICENSE.md para obter detalhes