Dans cet article, nous parlerons de la meilleure technologie d’interaction entre les logiciels et la testerons sur le langage le plus populaire pour créer des logiciels.
- Qu’est-ce que l’API REST Java ?
- D’accord, mais qu’est-ce qu’une API exactement ?
- Comment fonctionne cette interface ?
- Types de requêtes API
- Mais que signifie REST ?
- Prérequis
- Aperçu
- Comment commencer à utiliser les API avec Java
- Inscrivez-vous à RapidAPI
- Trouver une API
- Abonnez-vous à l’API
- Testez les points de terminaison
- Récupérez des données à l’aide de l’API
- Obtenir une réponse JSON
- Exemple: En utilisant des API Java &pour afficher d’autres types de données
- Conclusion
- FAQ
- Comment créer une API en Java ?
- Java est-il une API ?
- JSON est-il une API ?
Qu’est-ce que l’API REST Java ?
C’est une question difficile, nous allons donc la diviser en quelques parties. Java est l’un des langages de programmation les plus populaires au monde. Selon le classement TIOBE (qui classe les langues selon leur indice de popularité), c’est en fait la plus populaire. Il y a plusieurs raisons à cela, mais nous préférons la thèse selon laquelle Java est répandu, facile à déployer et dispose d’une boîte à outils magique « écrire une fois, exécuter partout”.
Cherchez-vous à créer une API à la place? Découvrez Comment créer une API en Java
D’accord, mais qu’est-ce qu’une API exactement ?
Eh bien, API signifie Interface de programmation d’application.
En bref, c’est un ensemble de règles qui contrôle l’interaction entre les logiciels (c’est-à-dire un objet qui reçoit une tâche et un objet qui donne cette tâche). Les API nous permettent d’éviter de plonger profondément dans le code source de certains logiciels tiers tout en nous permettant d’utiliser leurs privilèges rapidement et facilement.
Comment fonctionne cette interface ?
Tout d’abord, une API doit avoir une URL-hôte (ou URL de base), qui est l’adresse principale avec laquelle vous allez interagir.
En outre, les API ont un ensemble prédéfini de points de terminaison – des adresses uniques à l’intérieur de l’URL hôte, responsables de leurs fonctionnalités. De plus, les API doivent avoir une documentation expliquant tous les points de terminaison, les types de valeurs renvoyées, etc.
Après avoir trouvé une API intéressante et lu la documentation, vous devez envoyer une requête – une seule tâche pour le serveur (côté réception).
Métaphoriquement, c’est comme une conversation entre deux personnes: Quelqu’un (vous) pose une question (demande) et l’interlocuteur (point final) répond (réponse).
Types de requêtes API
Il existe de nombreux types de requêtes que l’API pourrait gérer, mais voici les plus utilisées :
- GET – renvoie les données du serveur. La demande la plus populaire en passant.
- POST – ajoute de nouvelles données sur le serveur. Souvent, ce type est utilisé pour l’enregistrement ou le téléchargement de fichiers.
- PUT/PATCH – met à jour les données, demande utile mais pas si recherchée.
- DELETE – supprime les données du serveur.
D’accord, nous avons le sens du premier et du dernier mot dans « API REST Java ».
Mais que signifie REST ?
C’est le style de communication logicielle qui aide un client à obtenir les données requises dans l’état well pour la représentation (transfert d’état REST-representational).
Donc, lorsque nous disons API REST, nous entendons – API qui non seulement renvoie les données demandées, mais les prépare également pour d’autres travaux.
Mais comment créer une API RESTful ? Tout ce qui est nécessaire – un tas de contraintes architecturales:
- Architecture client-serveur – séparation claire des deux côtés. Le client envoie des demandes et attend la réponse ; le serveur prend alors le rôle inverse. La principale raison de cette contrainte – un côté ne se soucie de rien sauf du format correct de l’interaction (ce n’est pas votre problème de savoir comment le serveur exécute votre demande et vice versa).
- Apatridie – indépendance de chaque demande singulière par rapport à toutes les demandes précédentes et futures. Par exemple, si vous envoyez la question « Quel est le nom de famille de Charlie? », puis enchaîne avec « Quel âge a-t-il? », le serveur ne serait pas en mesure de répondre à ce dernier. Le serveur n’enregistre aucune information du client et l’exige dans chaque demande.
- Cacheability – au lieu du serveur, le client pourrait (et devrait même) enregistrer certaines données sur le stockage local (cache). Cela augmente la productivité, dans la mesure où le nombre de demandes sera plus petit.
- Système en couches – le serveur doit inclure des couches pour différentes parties du processus. C’est utile car les couches ne savent rien les unes des autres et le serveur pourrait facilement être mis à l’échelle avec de nouvelles couches (par exemple, la sécurité).
- Interface uniforme – chaque point de terminaison doit avoir une adresse unique. Simple, utile et nécessaire.
Maintenant que nous avons toutes les informations sur les API RESTful Java, Essayons-les !
Prérequis
Tout d’abord, vous devez installer Java sur votre machine.
De plus, vous devriez avoir un générateur de paquets Maven pour faciliter l’installation et l’utilisation des paquets de site. En dehors de cela, nous n’aurons besoin que de la bibliothèque la plus unique pour faire des demandes sans problème et en quelques lignes.
Ici, vous pouvez regarder l’exemple de code qui fait une demande par des modules standard:
Semble assez difficile, non? En particulier InputStream en tant que type de valeur renvoyée (elle doit être traitée ultérieurement).
Regardons le même exemple avec Unirest :
Le tour est joué ! Vous pouvez attribuer le type de réponse attendu et travailler avec tout de suite.
Vous pouvez utiliser Unirest à l’aide de Maven, puis créer un projet Java Maven et trouver le pom.fichier xml – il affiche toutes les dépendances et tous les outils du projet. Insérez la partie suivante du code XML dans la balise <dependencies>
:
<dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version></dependency>
Des informations plus détaillées sur les dépendances peuvent être trouvées ici.
Maintenant, vous pouvez construire votre projet par la commande suivante dans le terminal (attention, utilisez-le uniquement dans le dossier principal, car pom.xml devrait être visible pour Maven):
mvn package
Maintenant, vous êtes prêt à utiliser Java pour interagir avec les API.
Aperçu
Avant de commencer, nous devrons trouver une API facile à tester. Parfois, il est difficile de trouver une API gratuite et utile à des fins de test. Chez RapidAPI, vous trouverez plus de 10 000 API avec lesquelles tester et vous connecter. Ici, vous pouvez tester vos compétences en programmation, créer des applications utiles et même créer vos propres API.
Comment commencer à utiliser les API avec Java
Inscrivez-vous à RapidAPI
Comme mentionné précédemment, RapidAPI dispose de plus de 10 000 API pour commencer. Et avec plus de 1 million de développeurs utilisant sa plate-forme, c’est l’une des plates-formes d’API les plus populaires et les plus fiables.
Alors cliquez ici pour commencer, c’est gratuit.
Trouver une API
Maintenant que vous avez un compte utilisateur, trouvons une API avec laquelle jouer.
Sur RapidAPI.com , vous pouvez trouver des API en parcourant :
- Catégories (exemple: Collections organisées sur la page d’accueil
Essayons de rechercher l’API IMDb pour obtenir des informations sur la télévision et les films :
Abonnez-vous à l’API
Pour commencer à utiliser cette API, vous devrez d’abord vous y abonner. (Indice: il existe un plan freemium qui permet 1000 demandes d’API gratuites / jour). Vous devrez entrer votre carte de crédit en cas de dépassement.
Si vous souhaitez essayer des API gratuites (sans carte de crédit) à la place, parcourez cette collection.
Une fois abonné, vous êtes maintenant prêt à tester les points de terminaison.
Testez les points de terminaison
Explorons tous les points de terminaison qui se trouvent dans cette API. Regardez sur le côté gauche de la page de l’API :
L’API IMDb n’a que deux points de terminaison :
-
GET By Search
– recherchez la base de données IMDb par chaîne de requête -
GET By ID or Title
– obtenez des informations plus détaillées sur un titre spécifique (y compris des informations sur le film / la télévision, le casting, la production, etc.).
Sur l’un des points de terminaison de l’API, remplissez les paramètres requis et cliquez sur « Point de terminaison de test ».
Sur le côté droit, vous pouvez voir la partie extrait, où les développeurs montrent comment se connecter à cette API avec n’importe quelle langue prise en charge.
Pour cette API, nous devons ajouter deux en-têtes (nom unique de l’API et notre propre jeton RapidAPI). Tous les autres paramètres dépendent du point final concret. Explorons tous les points de terminaison qui se trouvent dans cette API. Regardez sur le côté gauche de la page principale.
Récupérez des données à l’aide de l’API
D’accord, soyez prêt, il est temps de coder. Découvrons tout sur un film célèbre qui existe à l’intérieur des données imdb. Revenez à votre code et importez les choses suivantes:
Ici, nous importons URLEncoder
pour préparer les paramètres à envoyer, et 3 objets requis de la bibliothèque Unirest:
- pour gérer une réponse (HttpResponse),
- lui assigner un type JSON (JsonNode),
- et faire une requête GET (Unirest).
Maintenant, créons votre classe principale, où tout le code sera:
public class App{ public static void main( String args ) throws Exception { //Here will be your code }}
N’oubliez pas les exceptions. Vous devez gérer tous les avertissements et erreurs pour améliorer le projet.
D’accord, créons maintenant quelques variables de chaîne pour automatiser certains processus:
Maintenant que nous avons créé la requête, envoyons une requête et gérons la réponse :
Comme vous pouvez le voir, c’est assez simple.
Pour créer une requête, utilisez une bibliothèque Unirest avec la fonction GET.
Faites attention aux en–têtes – nous pouvons les ajouter en utilisant des points pour le fractionnement.
Après avoir fait une requête et traité sa réponse par l’objet HttpResponse
, nous pouvons voir le résultat.
D’abord println
affiche le code d’état de la réponse – un nombre court qui explique la situation avec nos actions demandées.
Dans notre cas, si tout va bien, il devrait renvoyer un statut 200-OK.
Le second println
, à son tour, affiche l’un des en–têtes de réponse – « Content-Type”.
Voyons ce que nous devrions obtenir avec la console API intégrée dans RapidAPI. Entrez simplement votre requête dans les champs du formulaire et cliquez sur « Test Endpoint”:
Vous devriez voir le même résultat que dans la capture d’écran ci-dessus.
Maintenant, vérifions notre code. Exécutez votre programme, et vous devriez voir:
200
Obtenir une réponse JSON
Dans la section de code précédente, nous avons utilisé un objet JsonNode
pour attribuer un type de format JSON à la réponse.
Le problème est que l’objet JsonNode par défaut imprime les données sur une seule ligne, ce qui est plutôt difficile à comprendre. Ajoutons une bibliothèque pour embellir les données – GSON. Modifiez votre pom.fichier xml avec la dépendance suivante:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>
Ajoutons maintenant quelques lignes d’importation dans la section d’importation de votre *.fichier java :
Ces objets nous aideront à imprimer notre JSON. D’accord, maintenant nous pouvons appeler le point de terminaison et obtenir une réponse:
Si tout se passe bien, nous devrions voir la réponse suivante:
Exemple: En utilisant des API Java &pour afficher d’autres types de données
Comme vous vous en souvenez peut-être, l’en-tête de type de contenu des requêtes précédentes était pour « application / json”, mais que se passe-t-il si nous voulons envoyer / recevoir quelque chose qui ne peut pas être traité en JSON?
Par exemple, un fichier ou une image ?
Essayons de le démontrer avec l’API du générateur de Mèmes.
L’API du générateur de mèmes se compose de 5 points de terminaison:
- Generate meme
- Get fonts
- Upload Image
- Upload font
- Get images
Utilisons le point de terminaison Generate meme:
Tout d’abord, modifions nos importations en ajoutant ces lignes en haut de notre code:
import java.io.InputStream;import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;
Maintenant, collez l’extrait de code suivant dans la méthode principale:
Ici, nous gérons le corps brut de la réponse dans l’objet InputStream
. L’étape suivante consiste à le lire dans l’image dynamique de l’objet BufferedImage
dans la mémoire du programme.
Enfin, créons (ou mettons à jour) une image.fichier jpg et enregistrer le tampon à l’intérieur. Cela devrait produire ce qui suit:
Comme vous pouvez le voir, l’API retourne à un objet image.
Pour voir l’image réelle, vérifions le dossier principal de notre projet et vous devriez trouver:
Conclusion
Dans ce guide, nous avons étudié comment utiliser RapidAPI pour créer des applications API REST Java intéressantes et utiles et avons essayé quelques API utiles pour effacer les moments clés de cette technique.
- Comment Utiliser Une API
- Avec Python
- Avec PHP
- Avec JavaScript
- Avec React
- Axios
- Avec NodeJS
- Avec VueJS
- Avec React
- Avec Ruby on Rails
- Avec C#
- Dans Google Sheets
- Comment Créer une API avec Java
- Liste des Tutoriels de l’API REST
- Comment utiliser l’API Twitter avec Java
- Comment utiliser l’API Skyscanner avec Java
- Comment utiliser l’API Yahoo Finance avec Java
FAQ
Comment créer une API en Java ?
Consultez ces tutoriels sur l’API Java pour savoir comment créer une API.
Java est-il une API ?
Java est un langage de programmation.
Les API sont un ensemble de définitions et de protocoles qui permettent aux produits et services technologiques de communiquer entre eux.
Une interface de programmation d’applications Java (API) peut faire référence au kit de développement Java (JDK) ou aux API accessibles à l’aide de Java.