GridmiAPI - une bibliothèque Android simple et flexible pour travailler avec REST et RPC

Bonjour, Khabrovites!

Lorsque vous développez des applications réseau pour la plate-forme Android, vous comprenez que l'une et l'autre application sont similaires. Avec cette pensée, la majorité des développeurs initialisent une autre pensée - "Pourquoi je n'utilise pas de solutions toutes faites, car évidemment ma tâche n'est pas nouvelle?". À partir de ce moment, la recherche commence pour trouver les bibliothèques appropriées pour résoudre le problème actuel. Après un certain temps - profit. Tout semblait bien, car la bibliothèque a été trouvée et il ne restait plus qu'à écrire une implémentation de la solution au problème actuel. Et ici les problèmes commencent. Ils sont associés au contrôle des threads, et en effet Java n'a jamais été célèbre pour sa compacité, toute la "magie" doit être implémentée directement par le développeur. Parfois, je n'y trouve que des aspects positifs, car la logique de chaque projet diffère radicalement les uns des autres. Vous devez constamment basculer d'un flux à l'autre, ce qui n'est pas très pratique et, comme décrit précédemment, est lourd. La solution à ce problème a été mise en œuvre plus tôt, mais pas aussi compacte que nous le souhaiterions. Une bibliothèque pour travailler avec HTTP vient à la rescousse - GridmiAPI . Il s'agit de la solution la plus compacte qui, à son tour, vous permet de travailler avec des données en temps réel.

Processus de travail


Tout travail de bibliothèque commence par son initialisation. L'initialisation est requise une fois. L'initialisation fait référence à la construction suivante:

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

  1. Adresse du noeud final de traitement des demandes
  2. Délai de réponse du serveur
  3. La classe dans laquelle la réponse du serveur doit être castée

C'est tout! La bibliothèque est prête pour une utilisation complète.

Première demande de serveur


Pour terminer la première demande au serveur, vous devez écrire quelques lignes de code et les données dont nous avons besoin. Ne croyez pas? Voir:

 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(); 

Félicitations! Ceci est votre "Bonjour tout le monde!" en utilisant cette bibliothèque. Examinons deux méthodes réécrites de la classe GridmiAPI.Handler.OUT. Pour commencer, il doit être écrit que ces deux méthodes sont appelées dans le thread principal, donc à la fin de la demande, cela n'a aucun sens d'accéder à l'activité pour démarrer le thread principal. Vous prenez simplement JSON par exemple et changez le texte de TextView. Tout est simple.

Envoyer le fichier au serveur


Très souvent, vous devez envoyer des fichiers au serveur. Encore des maux de tête? Pas question. La bibliothèque GridmiAPI rend l'envoi d'un fichier très facile sans maux de tête. Un peu plus de lignes que dans l'exemple ci-dessus, mais toujours compactes. Voici comment envoyer un fichier:

 @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(); } } 

Conclusion


Nous avons examiné les tâches les plus populaires, plus en détail vous pouvez vous familiariser sur la page de cette bibliothèque sur GitHub - GridmiAPI . Il est confortable de travailler avec cette bibliothèque. Estimez-vous. Merci de votre intérêt pour cet article!

Les références


Bibliothèque GridmiAPI
Documentation / ReadMe.md

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


All Articles