GridmiAPI - uma biblioteca Android simples e flexível para trabalhar com REST e RPC

Olá, Khabrovites!

Ao desenvolver aplicativos de rede para a plataforma Android, você entende que um e outro aplicativo são semelhantes. Com esse pensamento, a maioria dos desenvolvedores inicializa outra idéia: "Por que não uso soluções prontas, porque obviamente minha tarefa não é nova?". A partir desse momento, começa a busca de bibliotecas adequadas para resolver o problema atual. Depois de algum tempo - lucro. Tudo parecia estar bom, porque a biblioteca foi encontrada e restava apenas escrever uma implementação da solução para o problema atual. E aqui começam os problemas. Eles estão associados ao controle de threads e, de fato, o Java nunca foi famoso por sua compactação, toda a "mágica" deve ser implementada diretamente pelo desenvolvedor. Às vezes, encontro apenas aspectos positivos nisso, porque a lógica de cada projeto difere radicalmente uma da outra. Você constantemente precisa alternar de fluxo em fluxo, o que não é muito conveniente e, como descrito anteriormente, é complicado. A solução para esse problema foi implementada anteriormente, mas não tão compacta quanto gostaríamos. Uma biblioteca para trabalhar com HTTP vem em socorro - GridmiAPI . Esta é a solução mais compacta, que por sua vez permite operar com dados em tempo real.

Processo de trabalho


Todo o trabalho da biblioteca começa com sua inicialização. A inicialização é necessária uma vez. Inicialização refere-se à seguinte construção:

GridmiAPI.init("https://habr.com/API/", 8000, JSONObject.class); 

  1. Endereço do Terminal de Processamento da Solicitação
  2. Tempo limite de resposta do servidor
  3. A classe à qual a resposta do servidor deve ser convertida

Isso é tudo! A biblioteca está pronta para uso total.

Primeira solicitação do servidor


Para concluir a primeira solicitação ao servidor, você precisa escrever apenas algumas linhas de código e os dados que precisamos de nós. Não acredita? Veja:

 GridmiAPI.onRequest(this, new GridmiAPI.Request("profile/get"), new GridmiAPI.Handler.OUT() { @Override protected void onSuccess(GridmiAPI.Response response) { Log.d("TagGridmiAPI", "result = " + ((JSONObject) response.getData()).toString()); } @Override protected void onFailed(Exception exception) { Log.d("TagGridmiAPI", "exception = " + exception.getMessage()); } }).start(); 

Parabéns! Este é o seu "Olá, mundo!" usando esta biblioteca. Vejamos dois métodos reescritos da classe GridmiAPI.Handler.OUT. Para começar, deve-se escrever que esses dois métodos são chamados no encadeamento principal; portanto, após a conclusão da solicitação, não faz sentido acessar a atividade para iniciar o encadeamento principal. Você apenas pega o JSON, por exemplo, e altera o texto do TextView. Tudo é simples.

Enviar arquivo para o servidor


Muitas vezes você precisa enviar arquivos para o servidor. Dor de cabeça de novo? De jeito nenhum. A biblioteca GridmiAPI facilita o envio de um arquivo sem dor de cabeça. Um pouco mais de linhas do que no exemplo acima, mas ainda compacto. Veja como enviar um arquivo:

 @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data == null || data.getData() == null) return; try { //     GridmiAPI.Request request = new GridmiAPI.Request("POST", "photo/add"); //      GridmiAPI.Multipart multipart = new GridmiAPI.Multipart(getContentResolver()); multipart.appendData("photo", data.getData()); //    request.setBody(multipart); //   GridmiAPI.onRequest(this, request, new GridmiAPI.Handler.OUT() { @Override protected void onSuccess(GridmiAPI.Response response) { try { //      boolean result = ((JSONObject) response.getData()).getBoolean("result"); //  Toast.makeText(MainActivity.this, result ? "!" : "!", Toast.LENGTH_LONG).show(); } catch (Exception exception) { this.onFailed(exception); } } @Override protected void onFailed(Exception exception) { //     Toast.makeText(MainActivity.this, exception.getMessage(), Toast.LENGTH_LONG).show(); } }).start(); } catch (Exception exception) { Toast.makeText(this, exception.getMessage(), Toast.LENGTH_LONG).show(); } } 

Conclusão


Examinamos as tarefas mais populares; em mais detalhes, você pode se familiarizar na página desta biblioteca no GitHub - GridmiAPI . É confortável trabalhar com esta biblioteca. Avalie-se. Obrigado pelo seu interesse neste artigo!

Referências


Biblioteca GridmiAPI
Documentação / ReadMe.md

Source: https://habr.com/ru/post/pt470570/


All Articles