


Développement backend Java : création d'API réactives avec Akka HTTP
Dans le développement Web d’aujourd’hui, la programmation réactive devient de plus en plus importante. Akka HTTP est un framework HTTP hautes performances basé sur Akka, adapté à la création d'API réactives de style REST. Cet article expliquera comment utiliser Akka HTTP pour créer une API réactive, tout en fournissant quelques exemples pratiques. Commençons !
- Pourquoi choisir Akka HTTP
Lors du développement d'une API réactive, il est très important de choisir le bon framework. Akka HTTP est un très bon choix car il présente les avantages suivants :
1.1 Responsive et non bloquant
Akka HTTP est un framework très responsive qui permet de gérer un grand nombre de demandes sans bloquer votre candidature. Il utilise le modèle Actor, ce qui signifie que vous pouvez utiliser des opérations asynchrones pour répondre rapidement aux demandes tout en gardant votre application hautement évolutive.
1.2 Hautes performances
Puisqu'il est construit sur le framework Akka, Akka HTTP est capable de fournir des performances plus rapides. En effet, il est capable de tirer pleinement parti de plusieurs processeurs et cœurs et convient aux situations dans lesquelles une simultanéité élevée est utilisée.
1.3 Facile à utiliser et à configurer
Akka HTTP est très simple à configurer et à utiliser. Il fournit un ensemble d'outils puissants qui vous permettent de configurer et de gérer rapidement votre API. Vous pouvez également écrire votre code en Scala ou Java.
- Créer une API réactive
Ensuite, nous montrerons comment créer une API réactive à l'aide d'Akka HTTP. Nous allons créer une API simple pour gérer une liste d'utilisateurs.
2.1 Installation et importation
Pour utiliser Akka HTTP, vous devez ajouter les dépendances suivantes :
<dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-actor_2.12</artifactId> <version>2.5.26</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-http_2.12</artifactId> <version>10.1.10</version> </dependency>
Veuillez vous assurer que dans votre Maven ou Projet Gradle Incluez ces dépendances.
2.2 Créer un routeur
Nous allons maintenant créer un routeur qui recevra différentes requêtes HTTP et fournira les réponses correspondantes. Nous utiliserons la classe Route fournie par Akka HTTP pour définir notre routeur et fournir les règles de routage correspondantes.
Dans cet exemple, nous allons créer un chemin /User avec les méthodes GET, POST, PUT et DELETE. La méthode GET renverra une liste d'utilisateurs, la méthode POST créera un nouvel utilisateur, la méthode PUT mettra à jour les utilisateurs et la méthode DELETE supprimera un utilisateur.
Voici le code de notre routeur :
import akka.http.javadsl.server.Route; import akka.http.javadsl.server.AllDirectives; public class UserRouter extends AllDirectives { private final UserService userService; public UserRouter(UserService userService) { this.userService = userService; } public Route createRoute() { return route( pathPrefix("users", () -> route( get(() -> complete(userService.getUsers())), post(() -> entity( Jackson.unmarshaller(User.class), user -> complete( StatusCodes.CREATED, userService.createUser(user) ) )), put(() -> entity( Jackson.unmarshaller(User.class), user -> complete( userService.updateUser(user) ) )), delete(() -> parameter( "id", id -> complete( userService.deleteUser(Long.parseLong(id)) ) )) )) ); } }
2.3 Implémentation de la couche de service
Ensuite, nous devons implémenter la couche de service utilisateur. La couche de service traitera en fait toutes les demandes et utilisera une couche de stockage (telle qu'une base de données) pour gérer les données utilisateur. Dans cet exemple, nous utiliserons un simple HashMap pour stocker les données.
Voici le code de notre classe UserService :
import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; public class UserService { private final Map<Long, User> users = new HashMap<>(); private final AtomicLong counter = new AtomicLong(); public User createUser(User user) { long id = counter.incrementAndGet(); user.setId(id); users.put(id, user); return user; } public User updateUser(User user) { users.put(user.getId(), user); return user; } public User deleteUser(long id) { return users.remove(id); } public List<User> getUsers() { return new ArrayList<>(users.values()); } }
2.4 Démarrage du service
Maintenant que nous avons défini notre routeur et notre couche de service, nous Nous devons démarrer notre application. Pour cet exemple, nous allons créer une méthode principale simple qui démarrera le serveur HTTP Akka et se connectera au port spécifié. 🎜🎜 Création d'une API réactive basée sur Akka HTTP et capable de gérer une liste d'utilisateurs en utilisant différentes méthodes HTTP. Testons notre API à l'aide d'un outil comme Postman et assurons-nous qu'elle fonctionne correctement.
Méthode GET : Obtenir la liste des utilisateurs
import akka.actor.ActorSystem; import akka.stream.ActorMaterializer; import akka.http.javadsl.server.HttpApp; public class Main extends HttpApp { private final UserService userService = new UserService(); private final UserRouter userRouter = new UserRouter(userService); public static void main(String[] args) { Main main = new Main(); main.startServer("localhost", 8080, ActorSystem.create(), ActorMaterializer.create()); } @Override protected Route routes() { return userRouter.createRoute(); } }
- Méthode POST : Créer un nouvel utilisateur
GET http://localhost:8080/users
Copier après la connexionMéthode PUT : Mettre à jour l'utilisateur existant
POST http://localhost:8080/users Body: { "name": "John Smith", "email": "john.smith@example.com" }
PUT http://localhost:8080/users Body: { "id": 1, "name": "John Smith", "email": "john.smith@example.com" }
Résumé
Grâce à cet article, nous avons appris à construire une réaction en utilisant Akka HTTP API. Nous avons découvert les principaux avantages du framework, comment créer des couches de routeur et de service et comment les démarrer. Nous fournissons également quelques exemples de méthodes HTTP courantes afin que vous puissiez tester et utiliser votre API. J'espère que cet article vous aidera !Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Il existe cinq directions d'emploi dans l'industrie Java, laquelle vous convient le mieux ? Java, en tant que langage de programmation largement utilisé dans le domaine du développement de logiciels, a toujours été populaire. En raison de sa forte nature multiplateforme et de son cadre de développement riche, les développeurs Java disposent d'un large éventail d'opportunités d'emploi dans divers secteurs. Dans l'industrie Java, il existe cinq principales directions d'emploi, à savoir le développement JavaWeb, le développement d'applications mobiles, le développement de Big Data, le développement intégré et le développement du cloud computing. Chaque direction a ses caractéristiques et ses avantages. Les cinq directions seront discutées ci-dessous.

La programmation réactive devient de plus en plus importante dans le développement Web actuel. AkkaHTTP est un framework HTTP hautes performances basé sur Akka, adapté à la création d'API réactives de style REST. Cet article expliquera comment utiliser AkkaHTTP pour créer une API réactive, tout en fournissant quelques exemples pratiques. Commençons ! Pourquoi choisir AkkaHTTP Lors du développement d'API réactives, il est important de choisir le bon framework. AkkaHTTP est un très bon choix car

Comment gérer les requêtes inter-domaines dans le développement de fonctions backend Java ? Dans un modèle de développement où le front-end et le back-end sont séparés, il est très courant que le front-end envoie des requêtes à l'interface API back-end pour obtenir des données via JavaScript. Cependant, en raison de la politique de même origine du navigateur, il existe des restrictions sur les requêtes inter-domaines. La requête inter-domaines signifie que la page frontale demande des serveurs avec différents noms de domaine, différents ports ou différents protocoles via AJAX et d'autres méthodes. Cet article présentera une méthode courante de gestion des requêtes inter-domaines dans le développement de fonctions back-end Java, avec des exemples de code. Résoudre plusieurs domaines

Comment résoudre les problèmes de transaction de base de données dans le développement de fonctions back-end Java ? Dans le développement de fonctions back-end Java, les fonctions impliquant des opérations de base de données sont très courantes. Dans les opérations de base de données, les transactions sont un concept très important. Une transaction est une unité logique constituée d'une séquence d'opérations de base de données qui est soit entièrement exécutée, soit pas exécutée du tout. Dans les applications pratiques, nous devons souvent nous assurer qu'un ensemble d'opérations de base de données associées sont toutes exécutées avec succès ou toutes annulées pour maintenir la cohérence et la fiabilité des données. Alors, comment développer dans le backend Java

Avec le développement continu de la technologie Internet, le développement et la conception d’API RESTful sont devenus une tâche vitale. L'API RESTful fournit un mécanisme simple, léger, flexible et fiable pour l'interaction entre différents services. Dans le même temps, la création d’API RESTful sécurisées devient de plus en plus importante. Dans cet article, nous explorerons comment créer une API RESTful sécurisée dans le développement backend Java. 1. Comprendre RESTfulAPI RESTfulAPI est un

Comment implémenter la persistance des données dans le développement de fonctions back-end Java ? Avec le développement rapide d’Internet, les données sont devenues un atout essentiel qui ne peut être ignoré par les organisations et les entreprises. Dans le développement back-end Java, assurer la persistance des données est une tâche importante. Cet article présentera plusieurs méthodes courantes de persistance des données et utilisera des exemples de code pour montrer comment implémenter la persistance des données en Java. 1. Base de données relationnelle La base de données relationnelle est l'une des méthodes de persistance des données les plus courantes. En Java, nous pouvons utiliser JDBC (JavaDa

Comment implémenter la fonction de recherche dans le développement de fonctions backend Java ? La fonctionnalité de recherche est une fonctionnalité essentielle dans les applications modernes. Qu'il s'agisse de rechercher des produits sur des plateformes de commerce électronique ou de rechercher des amis sur les réseaux sociaux, la fonction de recherche offre aux utilisateurs un moyen pratique et efficace d'obtenir des informations. Dans le développement backend Java, nous pouvons utiliser diverses technologies et bibliothèques pour implémenter des fonctions de recherche. Cet article présentera une méthode couramment utilisée pour implémenter la fonction de recherche et donnera des exemples de code utilisant le langage Java comme exemple. Dans le développement backend Java, nous avons généralement

Comment gérer les exceptions dans le développement de fonctions backend Java ? Dans le développement backend Java, la gestion des situations d'exception est une tâche très importante. Des exceptions peuvent se produire au moment de l'exécution, telles que des exceptions de pointeur nul, des exceptions de tableau hors limites, etc., ou il peut s'agir d'exceptions dans la logique métier, telles qu'une ressource introuvable, des autorisations insuffisantes, etc. Une gestion appropriée de ces exceptions peut non seulement améliorer la stabilité et la fiabilité du code, mais également améliorer la maintenabilité et la lisibilité du code. Cet article expliquera comment gérer raisonnablement les situations anormales dans le développement back-end Java et donnera les codes correspondants.
