Rumah pembangunan bahagian belakang tutorial php Pembangunan Bahagian Belakang Java: Membina API Reaktif dengan Akka HTTP

Pembangunan Bahagian Belakang Java: Membina API Reaktif dengan Akka HTTP

Jun 17, 2023 am 11:09 AM
bahagian belakang java akka http api reaktif

Pengaturcaraan reaktif menjadi semakin penting dalam pembangunan web hari ini. Akka HTTP ialah rangka kerja HTTP berprestasi tinggi berdasarkan Akka, sesuai untuk membina API gaya REST reaktif. Artikel ini akan memperkenalkan cara menggunakan HTTP Akka untuk membina API reaktif, sambil memberikan beberapa contoh praktikal. Mari mulakan!

  1. Mengapa memilih Akka HTTP

Apabila membangunkan API reaktif, adalah sangat penting untuk memilih rangka kerja yang betul. Akka HTTP ialah pilihan yang sangat baik kerana ia mempunyai kelebihan berikut:

1.1 Responsif dan tidak menyekat

Akka HTTP ialah rangka kerja yang sangat reaktif yang membolehkan anda mengendalikan sejumlah besar permintaan , tanpa menyekat permohonan anda. Ia menggunakan model Actor, yang bermaksud anda boleh menggunakan operasi tak segerak untuk membalas permintaan dengan cepat sambil memastikan aplikasi anda sangat berskala.

1.2 Prestasi Tinggi

Memandangkan ia dibina pada rangka kerja Akka, Akka HTTP mampu memberikan prestasi yang lebih pantas. Ini kerana ia dapat memanfaatkan sepenuhnya berbilang CPU dan teras dan sesuai untuk situasi di mana konkurensi tinggi digunakan.

1.3 Mudah untuk digunakan dan dikonfigurasikan

Akka HTTP sangat mudah untuk dikonfigurasi dan digunakan. Ia menyediakan satu set alat yang berkuasa yang membolehkan anda mengkonfigurasi dan mengurus API anda dengan cepat. Anda juga boleh menulis kod anda dalam Scala atau Java.

  1. Membina API reaktif

Seterusnya, kami akan menunjukkan cara membina API reaktif menggunakan Akka HTTP. Kami akan mencipta API mudah untuk mengurus senarai pengguna.

2.1 Pemasangan dan Import

Untuk menggunakan Akka HTTP anda perlu menambah kebergantungan berikut:

<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>
Salin selepas log masuk

Sila pastikan anda mempunyai kebergantungan ini dalam projek Maven atau Gradle anda.

2.2 Cipta Penghala

Kini kami akan mencipta penghala yang menerima permintaan HTTP yang berbeza dan memberikan respons yang sepadan. Kami akan menggunakan kelas Laluan yang disediakan oleh Akka HTTP untuk menentukan penghala kami dan menyediakan peraturan penghalaan yang sepadan.

Dalam contoh ini, kami akan mencipta laluan /User dengan kaedah GET, POST, PUT dan DELETE. Kaedah GET akan mengembalikan senarai pengguna, kaedah POST akan mencipta pengguna baharu, kaedah PUT akan mengemas kini pengguna, dan kaedah DELETE akan memadamkan pengguna.

Berikut ialah kod untuk penghala kami:

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))
          )
        ))
      ))
    );
  }
  
}
Salin selepas log masuk

2.3 Melaksanakan lapisan perkhidmatan

Seterusnya, kita perlu melaksanakan lapisan perkhidmatan pengguna. Lapisan perkhidmatan sebenarnya akan mengendalikan semua permintaan dan menggunakan lapisan storan (seperti pangkalan data) untuk mengurus data pengguna. Dalam contoh ini, kami akan menggunakan HashMap mudah untuk menyimpan data.

Berikut ialah kod untuk kelas UserService kami:

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

}
Salin selepas log masuk

2.4 Memulakan Perkhidmatan

Sekarang kami telah menetapkan penghala dan lapisan perkhidmatan kami, kami perlu memulakan aplikasi kami . Untuk contoh ini, kami akan mencipta kaedah utama mudah yang akan memulakan pelayan HTTP Akka dan menyambung ke port yang ditentukan.

Berikut ialah kod untuk kelas permulaan kami:

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();
  }
  
}
Salin selepas log masuk
  1. API Uji

Kini kami telah berjaya mencipta API tindak balas berasaskan HTTP Akka dan boleh gunakan kaedah HTTP yang berbeza untuk mengurus senarai pengguna. Mari uji API kami menggunakan alat seperti Posman dan pastikan ia berfungsi dengan betul.

Kaedah GET: Dapatkan senarai pengguna

GET http://localhost:8080/users
Salin selepas log masuk

Kaedah POST: Cipta pengguna baharu

POST http://localhost:8080/users
Body: 
{
  "name": "John Smith",
  "email": "john.smith@example.com"
}
Salin selepas log masuk

Kaedah PUT: Kemas kini pengguna sedia ada

PUT http://localhost:8080/users
Body: 
{
  "id": 1,
  "name": "John Smith",
  "email": "john.smith@example.com"
}
Salin selepas log masuk

Kaedah PADAM: Padam Sedia Ada Pengguna

DELETE http://localhost:8080/users?id=1
Salin selepas log masuk
  1. Ringkasan

Melalui artikel ini, kami telah mempelajari cara membina API reaktif menggunakan Akka HTTP. Kami belajar tentang faedah utama rangka kerja, cara membuat penghala dan lapisan perkhidmatan, dan cara memulakannya. Kami juga menyediakan beberapa contoh kaedah HTTP biasa supaya anda boleh menguji dan menggunakan API anda. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Pembangunan Bahagian Belakang Java: Membina API Reaktif dengan Akka HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah lima pilihan untuk memilih laluan kerjaya Java yang paling sesuai dengan anda? Apakah lima pilihan untuk memilih laluan kerjaya Java yang paling sesuai dengan anda? Jan 30, 2024 am 10:35 AM

Terdapat lima arah pekerjaan dalam industri Java, yang manakah sesuai untuk anda? Java, sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam bidang pembangunan perisian, sentiasa popular. Disebabkan sifat merentas platform yang kukuh dan rangka kerja pembangunan yang kaya, pembangun Java mempunyai pelbagai peluang pekerjaan dalam pelbagai industri. Dalam industri Java, terdapat lima arah pekerjaan utama, termasuk pembangunan JavaWeb, pembangunan aplikasi mudah alih, pembangunan data besar, pembangunan terbenam dan pembangunan pengkomputeran awan. Setiap arah mempunyai ciri-ciri dan kelebihannya Lima arah akan dibincangkan di bawah.

Pembangunan Bahagian Belakang Java: Membina API Reaktif dengan Akka HTTP Pembangunan Bahagian Belakang Java: Membina API Reaktif dengan Akka HTTP Jun 17, 2023 am 11:09 AM

Pengaturcaraan reaktif menjadi semakin penting dalam pembangunan web hari ini. AkkaHTTP ialah rangka kerja HTTP berprestasi tinggi berdasarkan Akka, sesuai untuk membina API gaya REST reaktif. Artikel ini akan memperkenalkan cara menggunakan AkkaHTTP untuk membina API reaktif, sambil memberikan beberapa contoh praktikal. Mari mulakan! Mengapa memilih AkkaHTTP Apabila membangunkan API reaktif, adalah penting untuk memilih rangka kerja yang betul. AkkaHTTP adalah pilihan yang sangat baik kerana

Bagaimana untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java? Bagaimana untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java? Aug 05, 2023 am 09:40 AM

Bagaimana untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java? Dalam model pembangunan di mana bahagian hadapan dan bahagian belakang dipisahkan, ia adalah senario yang sangat biasa bagi bahagian hadapan untuk menghantar permintaan kepada antara muka API bahagian belakang untuk mendapatkan data melalui JavaScript. Walau bagaimanapun, disebabkan dasar asal yang sama penyemak imbas, terdapat sekatan pada permintaan merentas domain. Permintaan merentas domain bermakna halaman akhir hadapan meminta pelayan dengan nama domain yang berbeza, port yang berbeza atau protokol yang berbeza melalui AJAX dan kaedah lain. Artikel ini akan memperkenalkan kaedah biasa untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi back-end Java, dengan contoh kod. Selesaikan merentas domain

Bagaimana untuk menyelesaikan masalah transaksi pangkalan data dalam pembangunan fungsi back-end Java? Bagaimana untuk menyelesaikan masalah transaksi pangkalan data dalam pembangunan fungsi back-end Java? Aug 04, 2023 pm 07:45 PM

Bagaimana untuk menyelesaikan masalah transaksi pangkalan data dalam pembangunan fungsi back-end Java? Dalam pembangunan fungsi back-end Java, fungsi yang melibatkan operasi pangkalan data adalah sangat biasa. Dalam operasi pangkalan data, urus niaga adalah konsep yang sangat penting. Transaksi ialah unit logik yang terdiri daripada urutan operasi pangkalan data yang sama ada dilaksanakan sepenuhnya atau tidak dilaksanakan sama sekali. Dalam aplikasi praktikal, kita selalunya perlu memastikan bahawa satu set operasi pangkalan data yang berkaitan sama ada semuanya berjaya dilaksanakan atau semuanya digulung semula untuk mengekalkan ketekalan dan kebolehpercayaan data. Jadi, bagaimana untuk membangunkan di backend Java

Pembangunan Bahagian Belakang Java: Membina API RESTful Selamat Pembangunan Bahagian Belakang Java: Membina API RESTful Selamat Jun 17, 2023 am 08:31 AM

Dengan pembangunan berterusan teknologi Internet, membangun dan mereka bentuk RESTful API telah menjadi tugas yang penting. RESTful API menyediakan mekanisme yang mudah, ringan, fleksibel dan boleh dipercayai untuk interaksi antara perkhidmatan yang berbeza. Pada masa yang sama, membina API RESTful yang selamat menjadi semakin penting. Dalam artikel ini, kami akan meneroka cara membina API RESTful yang selamat dalam pembangunan backend Java. 1. Memahami RESTfulAPI RESTfulAPI ialah a

Bagaimana untuk melaksanakan kegigihan data dalam pembangunan fungsi back-end Java? Bagaimana untuk melaksanakan kegigihan data dalam pembangunan fungsi back-end Java? Aug 07, 2023 am 10:21 AM

Bagaimana untuk melaksanakan kegigihan data dalam pembangunan fungsi back-end Java? Dengan perkembangan pesat Internet, data telah menjadi aset teras yang tidak boleh diabaikan oleh organisasi dan perusahaan. Dalam pembangunan back-end Java, mencapai ketekunan data adalah tugas penting. Artikel ini akan memperkenalkan beberapa kaedah kegigihan data biasa dan menggunakan contoh kod untuk menunjukkan cara melaksanakan kegigihan data dalam Java. 1. Pangkalan data hubungan Pangkalan data hubungan adalah salah satu kaedah kegigihan data yang paling biasa. Di Jawa kita boleh menggunakan JDBC (JavaDa

Bagaimana untuk melaksanakan fungsi carian dalam pembangunan fungsi back-end Java? Bagaimana untuk melaksanakan fungsi carian dalam pembangunan fungsi back-end Java? Aug 05, 2023 am 11:09 AM

Bagaimana untuk melaksanakan fungsi carian dalam pembangunan fungsi back-end Java? Fungsi carian ialah ciri penting dalam aplikasi moden. Sama ada mencari produk di platform e-dagang atau mencari rakan di media sosial, fungsi carian menyediakan pengguna cara yang mudah dan cekap untuk mendapatkan maklumat. Dalam pembangunan back-end Java, kita boleh menggunakan pelbagai teknologi dan perpustakaan untuk melaksanakan fungsi carian. Artikel ini akan memperkenalkan kaedah yang biasa digunakan untuk melaksanakan fungsi carian, dan memberikan contoh kod menggunakan bahasa Java sebagai contoh. Dalam pembangunan backend Java, kami biasanya

Bagaimana untuk menangani pengecualian dalam pembangunan fungsi backend Java? Bagaimana untuk menangani pengecualian dalam pembangunan fungsi backend Java? Aug 06, 2023 pm 04:06 PM

Bagaimana untuk menangani pengecualian dalam pembangunan fungsi backend Java? Dalam pembangunan backend Java, mengendalikan situasi pengecualian adalah tugas yang sangat penting. Pengecualian mungkin berlaku pada masa jalan, seperti pengecualian penuding nol, pengecualian luar sempadan tatasusunan, dsb., atau pengecualian itu mungkin dalam logik perniagaan, seperti sumber tidak ditemui, kebenaran tidak mencukupi, dsb. Mengendalikan pengecualian ini dengan betul bukan sahaja dapat meningkatkan kestabilan dan kebolehpercayaan kod, tetapi juga meningkatkan kebolehselenggaraan dan kebolehbacaan kod. Artikel ini akan memperkenalkan cara untuk mengendalikan situasi tidak normal secara munasabah dalam pembangunan back-end Java dan memberikan kod yang sepadan.

See all articles