Créer une API à l'aide de Retrofit2, Okhttp3 et Gson (Java)

Un mémorandum lors de la création de l'API. J'ai pu communiquer avec cela pour le moment, sans explication détaillée.

procédure

--Définissez le fichier manifeste pour permettre la communication --Définissez une classe pour recevoir les demandes et les réponses --Créer un point de terminaison --Créer un client HTTP --Exécuter

Définissez manifestFile pour autoriser la communication

AndroidManifest.Écrivez ce qui suit en xml




#### **`AndroidManifest.xml`**
```java

<uses-permission android:name="android.permission.INTERNET" />

Définir une classe pour recevoir les demandes et les réponses

Classe de demande de connexion, le corps de la demande est envoyé dans ce format

LoginRequest.java


package com.example.bookmanager_android.models.requests;

public class LoginRequest {
    private String email;
    private String password;

    public LoginRequest(String email, String passWord){
        this.email = email;
        this.password = passWord;
    }
}

Classe de réponse pour la connexion, la réponse est reçue sous cette forme

LoginResponse.java


package com.example.bookmanager_android.models.requests.response;

public class LoginResponse {
    public int status;
    public Result result;

    public static class Result {
        public int id;
        public String email;
        public String token;
    }
}

Créer un point de terminaison

Créer une interface

RequestApiService



public interface RequestApiService {
    @POST("/login") //Point de terminaison de l'API
    Call<LoginResponse> logIn(@Body LoginRequest requestBody); 
    //Lorsque la méthode logIn est appelée,Le format du corps sera la forme de la classe LoginRequest créée ci-dessus.
}

Créer un client HTTP

HttpClient.java


public class HttpClient {
    public static RequestApiService apiService;

    private static final String URL = "http://baseurl"; //Spécifiez BaseUrl

    // Okhttp
    private static final OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(10, TimeUnit.SECONDS)
            .writeTimeout(10, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .build();
    // GSON
    private static final Gson gson = new GsonBuilder()
            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
            .create();

    //Créez un client Http en combinant Retrofit avec GSON et Okhttp
    public static RequestApiService getRequestApiService() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(URL)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .client(client)
                .build();
        apiService = retrofit.create(RequestApiService.class);
        return apiService;
    }

Courir

SignInFragment.java



private boolean starLogin(String emailStr, String passwordStr) {
        //Créer un corps
        LoginRequest requestBody = new LoginRequest(emailStr, passwordStr);
        //Appel client HTTP
        RequestApiService apiService = HttpClient.getRequestApiService();

        //Début de la communication: le processus défini dans l'interface est appelé
        apiService.logIn(requestBody).enqueue(new Callback<LoginResponse>() {
            @Override
            public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
                if (response.isSuccessful()) {
                   //Décrit le traitement lorsque le traitement de la communication est réussi
                } else {
                    Log.e("SignInFragment", "Something wrong On Response: " + response.toString());   
                }
            }

            @Override
            public void onFailure(Call<LoginResponse> call, Throwable t) {
                //Décrit le traitement lorsque le traitement de la communication échoue
            }
        });
        return true;
    }

Impressions

Il y a encore des choses comme la conservation des jetons et le traitement en cas de succès ou d'échec, mais pour le moment, la communication était possible.

Recommended Posts

Créer une API à l'aide de Retrofit2, Okhttp3 et Gson (Java)
Remarques sur la mise en œuvre de l'API Google Books dans les versions java okhttp et gson et les versions okhttp et jackson
Conseils d'utilisation de Salesforce SOAP et de l'API Bulk en Java
Créons un système de téléchargement de fichiers à l'aide de l'API Azure Computer Vision et du SDK Java d'Azure Storage
Exporter un problème à l'aide de l'API Java de JIRA
Créer un projet Java à l'aide d'Eclipse
J'ai essayé d'utiliser l'API Java8 Stream
[Android] Convertissez Map en JSON à l'aide de GSON avec Kotlin et Java
[Java] Créer et appliquer un masque des diapositives
Traitement des données à l'aide de l'API de flux de Java 8
Essayez d'utiliser l'API Stream en Java
De nos jours, les expressions Java Lambda et l'API de flux
Implémentation Java pour créer et résoudre des labyrinthes
Essayez d'utiliser l'API au format JSON en Java
Créer un service d'API RESTful à l'aide de Grape
Coopération entre Java et Derby en utilisant JDBC (en utilisant NetBeans)
Installez Docker et créez un environnement d'exécution Java
[Java] Obtenez et affichez la date 10 jours plus tard à l'aide de l'API Time ajoutée à partir de Java 8.
Interagir avec l'API de message LINE à l'aide de Lambda (Java)
Installez java et android-sdk sur Mac en utilisant homebrew
Créons une API REST à l'aide de WildFly Swarm.
ChatWork4j pour l'utilisation de l'API ChatWork en Java
[Java] Création d'API à l'aide de Jerjey (Jax-rs) avec eclipse
[Java] Créez quelque chose comme une API de recherche de produits
Essayez d'utiliser l'API Cloud Vision de GCP en Java
Méthode d'acquisition de la date et de l'heure à l'aide de l'API DateAndTime
Essayez d'utiliser l'analyse syntaxique de l'API COTOHA en Java
API Java Stream
Java et JavaScript
XXE et Java
Créez un environnement de développement Java à l'aide de jenv sur votre Mac
Convertir JSON et YAML en Java (en utilisant Jackson et SnakeYAML)
Essayé l'API Toot et Streaming de Mastodon en Java
[Java] Trier la liste à l'aide de flux et d'expressions lambda
[Session d'étude interne] Principes de base de l'expression Java-Lambda et de l'API Stream- (13/07/2017)
Installez java et maven sur un nouveau mac en utilisant brew
Créer deux graphiques linéaires ou plus à l’aide de MPAndroidChart [Java]
Créez un fichier war indépendant de l'environnement en utilisant les profils de Maven et maven-war-plugin
Examiner les éléments HTML et créer une classe Page (à l'aide de Selenide)
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
[Rails] Créez un plan de site à l'aide de sitemap_generator et déployez-le dans GAE
[Java] Convertir JSON en Java et Java en JSON-Comment utiliser GSON et Jackson-
Créez une application JAVA WEB et essayez OMC APM
Conversion entre objets Java et JSON à l'aide de Moshi
[Java10] Veillez à utiliser ensemble var et génériques
[Java] Développement avec plusieurs fichiers en utilisant package et import