Heim Backend-Entwicklung PHP-Tutorial Java-Backend-Entwicklung: Erstellen reaktiver APIs mit Akka HTTP

Java-Backend-Entwicklung: Erstellen reaktiver APIs mit Akka HTTP

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

In der heutigen Webentwicklung wird reaktive Programmierung immer wichtiger. Akka HTTP ist ein leistungsstarkes HTTP-Framework, das auf Akka basiert und sich zum Erstellen reaktiver APIs im REST-Stil eignet. In diesem Artikel wird erläutert, wie Sie mit Akka HTTP eine reaktive API erstellen, und es werden einige praktische Beispiele bereitgestellt. Fangen wir an!

  1. Warum Akka HTTP wählen?

Bei der Entwicklung reaktiver APIs ist es sehr wichtig, das richtige Framework auszuwählen. Akka HTTP ist eine sehr gute Wahl, da es die folgenden Vorteile bietet:

1.1 Reaktionsfreudig und nicht blockierend

Akka HTTP ist ein sehr reaktives Framework, mit dem Sie eine große Anzahl von Anfragen bearbeiten können, ohne Ihr Anwendungsprogramm zu blockieren. Es nutzt das Actor-Modell, was bedeutet, dass Sie asynchrone Vorgänge verwenden können, um schnell auf Anfragen zu reagieren und gleichzeitig Ihre Anwendung hoch skalierbar zu halten.

1.2 Hohe Leistung

Da es auf dem Akka-Framework basiert, kann Akka HTTP eine schnellere Leistung bieten. Dies liegt daran, dass es mehrere CPUs und Kerne voll ausnutzen kann und sich für Situationen eignet, in denen eine hohe Parallelität verwendet wird.

1.3 Einfach zu verwenden und zu konfigurieren

Akka HTTP ist sehr einfach zu konfigurieren und zu verwenden. Es bietet eine Reihe leistungsstarker Tools, mit denen Sie Ihre API schnell konfigurieren und verwalten können. Sie können Ihren Code auch in Scala oder Java schreiben.

  1. Erstellen einer reaktiven API

Als nächstes zeigen wir, wie man mit Akka HTTP eine reaktive API erstellt. Wir erstellen eine einfache API zum Verwalten einer Benutzerliste.

2.1 Installation und Import

Um Akka HTTP zu verwenden, müssen Sie die folgenden Abhängigkeiten hinzufügen:

<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>
Nach dem Login kopieren

Bitte stellen Sie sicher, dass Sie diese Abhängigkeiten in Ihrem Maven- oder Gradle-Projekt haben.

2.2 Router erstellen

Jetzt erstellen wir einen Router, der verschiedene HTTP-Anfragen empfängt und entsprechende Antworten bereitstellt. Wir werden die von Akka HTTP bereitgestellte Route-Klasse verwenden, um unseren Router zu definieren und die entsprechenden Routing-Regeln bereitzustellen.

In diesem Beispiel erstellen wir einen /User-Pfad mit den Methoden GET, POST, PUT und DELETE. Die GET-Methode gibt eine Liste von Benutzern zurück, die POST-Methode erstellt einen neuen Benutzer, die PUT-Methode aktualisiert Benutzer und die DELETE-Methode löscht Benutzer.

Das Folgende ist der Code für unseren Router:

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))
          )
        ))
      ))
    );
  }
  
}
Nach dem Login kopieren

2.3 Implementierung der Serviceschicht

Als nächstes müssen wir die Benutzerserviceschicht implementieren. Die Serviceschicht verarbeitet tatsächlich alle Anfragen und verwendet eine Speicherschicht (z. B. eine Datenbank) zur Verwaltung der Benutzerdaten. In diesem Beispiel verwenden wir eine einfache HashMap zum Speichern von Daten.

Hier ist der Code für unsere UserService-Klasse:

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

}
Nach dem Login kopieren

2.4 Starten des Dienstes

Da wir nun unseren Router und die Serviceschicht definiert haben, müssen wir unsere Anwendung starten. Für dieses Beispiel erstellen wir eine einfache Hauptmethode, die den Akka-HTTP-Server startet und eine Verbindung zum angegebenen Port herstellt.

Hier ist der Code für unsere Startup-Klasse:

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();
  }
  
}
Nach dem Login kopieren
  1. Testen der API

Jetzt haben wir erfolgreich eine reaktive API basierend auf Akka HTTP erstellt und können eine Liste von Benutzern mithilfe verschiedener HTTP-Methoden verwalten. Testen wir unsere API mit einem Tool wie Postman und stellen wir sicher, dass sie ordnungsgemäß funktioniert.

GET-Methode: Benutzerliste abrufen

GET http://localhost:8080/users
Nach dem Login kopieren

POST-Methode: Neuen Benutzer erstellen

POST http://localhost:8080/users
Body: 
{
  "name": "John Smith",
  "email": "john.smith@example.com"
}
Nach dem Login kopieren

PUT-Methode: Vorhandenen Benutzer aktualisieren

PUT http://localhost:8080/users
Body: 
{
  "id": 1,
  "name": "John Smith",
  "email": "john.smith@example.com"
}
Nach dem Login kopieren

DELETE-Methode: Vorhandenen Benutzer löschen

DELETE http://localhost:8080/users?id=1
Nach dem Login kopieren
  1. Zusammenfassung

Durch diesen Artikel haben wir gelernt wie man reaktive APIs mit Akka HTTP erstellt. Wir haben die Hauptvorteile des Frameworks kennengelernt, erfahren, wie man Router und Service-Layer erstellt und wie man sie startet. Wir stellen auch einige Beispiele für gängige HTTP-Methoden bereit, damit Sie Ihre API testen und verwenden können. Ich hoffe, dieser Artikel hilft Ihnen!

Das obige ist der detaillierte Inhalt vonJava-Backend-Entwicklung: Erstellen reaktiver APIs mit Akka HTTP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche fünf Java-Karriereoptionen passen am besten zu Ihnen? Welche fünf Java-Karriereoptionen passen am besten zu Ihnen? Jan 30, 2024 am 10:35 AM

In der Java-Branche gibt es fünf Beschäftigungsrichtungen. Welche ist für Sie geeignet? Java erfreut sich als weit verbreitete Programmiersprache im Bereich der Softwareentwicklung seit jeher großer Beliebtheit. Aufgrund der starken plattformübergreifenden Natur und des umfangreichen Entwicklungsrahmens haben Java-Entwickler vielfältige Beschäftigungsmöglichkeiten in verschiedenen Branchen. In der Java-Branche gibt es fünf Hauptbeschäftigungsrichtungen, darunter JavaWeb-Entwicklung, mobile Anwendungsentwicklung, Big-Data-Entwicklung, eingebettete Entwicklung und Cloud-Computing-Entwicklung. Jede Richtung hat ihre Eigenschaften und Vorteile. Die fünf Richtungen werden im Folgenden besprochen.

Java-Backend-Entwicklung: Erstellen reaktiver APIs mit Akka HTTP Java-Backend-Entwicklung: Erstellen reaktiver APIs mit Akka HTTP Jun 17, 2023 am 11:09 AM

Reaktive Programmierung wird in der heutigen Webentwicklung immer wichtiger. AkkaHTTP ist ein leistungsstarkes HTTP-Framework auf Basis von Akka, das sich zum Erstellen reaktiver APIs im REST-Stil eignet. In diesem Artikel wird die Verwendung von AkkaHTTP zum Erstellen einer reaktiven API vorgestellt und einige praktische Beispiele bereitgestellt. Fangen wir an! Warum sollten Sie sich für AkkaHTTP entscheiden? Bei der Entwicklung reaktiver APIs ist es wichtig, das richtige Framework auszuwählen. AkkaHTTP ist eine sehr gute Wahl, weil

Wie gehe ich mit domänenübergreifenden Anforderungen bei der Entwicklung von Java-Backend-Funktionen um? Wie gehe ich mit domänenübergreifenden Anforderungen bei der Entwicklung von Java-Backend-Funktionen um? Aug 05, 2023 am 09:40 AM

Wie gehe ich mit domänenübergreifenden Anforderungen bei der Entwicklung von Java-Backend-Funktionen um? In einem Entwicklungsmodell, in dem Front-End und Back-End getrennt sind, kommt es sehr häufig vor, dass das Front-End Anfragen an die Back-End-API-Schnittstelle sendet, um Daten über JavaScript abzurufen. Aufgrund der Same-Origin-Policy des Browsers gibt es jedoch Einschränkungen bei domänenübergreifenden Anfragen. Eine domänenübergreifende Anforderung bedeutet, dass die Front-End-Seite über AJAX und andere Methoden Server mit unterschiedlichen Domänennamen, unterschiedlichen Ports oder unterschiedlichen Protokollen anfordert. In diesem Artikel wird anhand von Codebeispielen eine gängige Methode zur Verarbeitung domänenübergreifender Anforderungen bei der Entwicklung von Java-Back-End-Funktionen vorgestellt. Domänenübergreifend lösen

Wie löst man Datenbanktransaktionsprobleme bei der Entwicklung von Java-Back-End-Funktionen? Wie löst man Datenbanktransaktionsprobleme bei der Entwicklung von Java-Back-End-Funktionen? Aug 04, 2023 pm 07:45 PM

Wie löst man Datenbanktransaktionsprobleme bei der Entwicklung von Java-Back-End-Funktionen? Bei der Entwicklung von Java-Backend-Funktionen sind Funktionen, die Datenbankoperationen beinhalten, sehr häufig. Im Datenbankbetrieb sind Transaktionen ein sehr wichtiges Konzept. Eine Transaktion ist eine logische Einheit, die aus einer Folge von Datenbankoperationen besteht, die entweder vollständig oder gar nicht ausgeführt werden. In praktischen Anwendungen müssen wir häufig sicherstellen, dass eine Reihe verwandter Datenbankvorgänge entweder alle erfolgreich ausgeführt oder alle zurückgesetzt werden, um die Datenkonsistenz und -zuverlässigkeit aufrechtzuerhalten. Also, wie entwickelt man ein Java-Backend?

Java-Backend-Entwicklung: Erstellen sicherer RESTful-APIs Java-Backend-Entwicklung: Erstellen sicherer RESTful-APIs Jun 17, 2023 am 08:31 AM

Mit der kontinuierlichen Weiterentwicklung der Internet-Technologie ist die Entwicklung und Gestaltung einer RESTful-API zu einer entscheidenden Aufgabe geworden. Die RESTful API bietet einen einfachen, leichten, flexiblen und zuverlässigen Mechanismus für die Interaktion zwischen verschiedenen Diensten. Gleichzeitig wird der Aufbau sicherer RESTful-APIs immer wichtiger. In diesem Artikel untersuchen wir, wie man eine sichere RESTful-API in der Java-Backend-Entwicklung erstellt. 1. RESTfulAPI verstehen RESTfulAPI ist ein

Wie implementiert man Datenpersistenz in der Java-Back-End-Funktionsentwicklung? Wie implementiert man Datenpersistenz in der Java-Back-End-Funktionsentwicklung? Aug 07, 2023 am 10:21 AM

Wie implementiert man Datenpersistenz in der Java-Back-End-Funktionsentwicklung? Mit der rasanten Entwicklung des Internets sind Daten zu einem zentralen Gut geworden, das von Organisationen und Unternehmen nicht ignoriert werden darf. Bei der Java-Backend-Entwicklung ist das Erreichen der Datenpersistenz eine wichtige Aufgabe. In diesem Artikel werden mehrere gängige Datenpersistenzmethoden vorgestellt und anhand von Codebeispielen gezeigt, wie Datenpersistenz in Java implementiert wird. 1. Relationale Datenbank Die relationale Datenbank ist eine der gebräuchlichsten Datenpersistenzmethoden. In Java können wir JDBC (JavaDa

Wie implementiert man eine Suchfunktion in der Java-Backend-Funktionsentwicklung? Wie implementiert man eine Suchfunktion in der Java-Backend-Funktionsentwicklung? Aug 05, 2023 am 11:09 AM

Wie implementiert man eine Suchfunktion in der Java-Backend-Funktionsentwicklung? Die Suchfunktion ist ein wesentliches Merkmal moderner Anwendungen. Ob bei der Suche nach Produkten auf E-Commerce-Plattformen oder bei der Suche nach Freunden in den sozialen Medien: Die Suchfunktion bietet Nutzern eine bequeme und effiziente Möglichkeit, Informationen zu erhalten. Bei der Java-Backend-Entwicklung können wir verschiedene Technologien und Bibliotheken nutzen, um Suchfunktionen zu implementieren. In diesem Artikel wird eine häufig verwendete Methode zum Implementieren der Suchfunktion vorgestellt und Codebeispiele am Beispiel der Java-Sprache gegeben. In der Java-Backend-Entwicklung tun wir normalerweise

Wie gehe ich mit Ausnahmen bei der Entwicklung von Java-Backend-Funktionen um? Wie gehe ich mit Ausnahmen bei der Entwicklung von Java-Backend-Funktionen um? Aug 06, 2023 pm 04:06 PM

Wie gehe ich mit Ausnahmen bei der Entwicklung von Java-Backend-Funktionen um? Bei der Java-Backend-Entwicklung ist die Behandlung von Ausnahmesituationen eine sehr wichtige Aufgabe. Ausnahmen können zur Laufzeit auftreten, z. B. Nullzeiger-Ausnahmen, Array-Out-of-Bounds-Ausnahmen usw., oder es kann sich um Ausnahmen in der Geschäftslogik handeln, z. B. nicht gefundene Ressourcen, unzureichende Berechtigungen usw. Die ordnungsgemäße Behandlung dieser Ausnahmen kann nicht nur die Stabilität und Zuverlässigkeit des Codes verbessern, sondern auch die Wartbarkeit und Lesbarkeit des Codes verbessern. In diesem Artikel wird erläutert, wie mit abnormalen Situationen in der Java-Back-End-Entwicklung vernünftig umgegangen werden kann, und es werden entsprechende Codes bereitgestellt.

See all articles