Maison développement back-end tutoriel php Développement backend Java : création d'API réactives avec Akka HTTP

Développement backend Java : création d'API réactives avec Akka HTTP

Jun 17, 2023 am 11:09 AM
java后端 akka http 反应式api

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 !

  1. 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.

  1. 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>
Copier après la connexion

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))
          )
        ))
      ))
    );
  }
  
}
Copier après la connexion

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

}
Copier après la connexion

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();
  }
  
}
Copier après la connexion
    Méthode POST : Créer un nouvel utilisateur
  1. GET http://localhost:8080/users
    Copier après la connexion
  2. Méthode PUT : Mettre à jour l'utilisateur existant
POST http://localhost:8080/users
Body: 
{
  "name": "John Smith",
  "email": "john.smith@example.com"
}
Copier après la connexion
# 🎜🎜#Méthode DELETE : Supprimer l'utilisateur existant

PUT http://localhost:8080/users
Body: 
{
  "id": 1,
  "name": "John Smith",
  "email": "john.smith@example.com"
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quelles sont les cinq options de carrière Java qui vous conviennent le mieux ? Quelles sont les cinq options de carrière Java qui vous conviennent le mieux ? Jan 30, 2024 am 10:35 AM

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.

Développement backend Java : création d'API réactives avec Akka HTTP Développement backend Java : création d'API réactives avec Akka HTTP Jun 17, 2023 am 11:09 AM

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 ? Comment gérer les requêtes inter-domaines dans le développement de fonctions backend Java ? Aug 05, 2023 am 09:40 AM

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 ? Comment résoudre les problèmes de transaction de base de données dans le développement de fonctions back-end Java ? Aug 04, 2023 pm 07:45 PM

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

Développement backend Java : création d'API RESTful sécurisées Développement backend Java : création d'API RESTful sécurisées Jun 17, 2023 am 08:31 AM

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 ? Comment implémenter la persistance des données dans le développement de fonctions back-end Java ? Aug 07, 2023 am 10:21 AM

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 back-end Java ? Comment implémenter la fonction de recherche dans le développement de fonctions back-end Java ? Aug 05, 2023 am 11:09 AM

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 ? Comment gérer les exceptions dans le développement de fonctions backend Java ? Aug 06, 2023 pm 04:06 PM

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.

See all articles