通过Dapr API访问Spring Boot REST API(简易版)
使用 Dapr API 访问 Spring Boot REST API(简化版)
Purpose
增强对分布式应用程序运行时Dapr的理解。
实现
我們將在 Ubuntu 的 Docker 環境中實施一個簡單的示例,該示例可以從 Dapr API 中訪問 Spring Boot 應用程式。
开发环境 fā
- Windows 11 Home 22H2 を使用しています。
> wsl –version
WSL version: 1.0.3.0
Kernel version: 5.15.79.1
WSLg version: 1.0.47Ubuntu
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Java JDK
$ java -version
openjdk version “11.0.18” 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Maven
$ mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.18, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Docker
$ docker –version
Docker version 23.0.1, build a5ee5b1
Dapr
$ dapr –version
CLI version: 1.11.0
Runtime version: 1.11.2
※ 本文基本上将使用Ubuntu终端进行操作。
创建Web应用程序规范
显示 “Hello World” 的步骤
创建Spring Boot应用程序
您可以从相关的文章中进行确认。
创建项目文件夹
创建一个项目文件夹。
※项目文件夹路径为 ~/tmp/hello-spring-dapr。
$ mkdir -p ~/tmp/hello-spring-dapr
$ cd ~/tmp/hello-spring-dapr
创建应用程序类
$ mkdir -p src/main/java/com/example/springdapr
$ vim src/main/java/com/example/springdapr/Application.java
文件的内容 de
package com.example.springdapr;
import java.util.Map;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
@RequestMapping("/api")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@GetMapping("/data")
public Map<String, String> getData() {
Map<String, String> map = Map.of("message", "Hello World!");
return map;
}
}
创建 pom.xml 文件
$ vim pom.xml
文件的内容 de
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.8</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>hello-spring-dapr</artifactId>
<version>1.0</version>
<name>hello-spring-dapr</name>
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
只需使用Spring Boot应用来执行
构建Java应用程序。
$ mvn clean package
启动应用程序。
※ 停止应用程序时请按下 Ctrl + C 键。
$ mvn spring-boot:run
我会通过命令从另一个终端确认。
$ curl http://localhost:8080/api/data -w '\n'
出力可以被理解为工作或努力的程度或强度。
{"message":"Hello World!"}
启动Dapr运行时
您可以在上一篇文章中了解有关 Dapr 运行时的相关信息。
Dapr版本确认
$ dapr --version
CLI version: 1.11.0
Runtime version: 1.11.2
Dapr运行时启动
$ dapr run \
--app-id hello-spring-dapr \
--app-port 8080 \
--dapr-http-port 3500 \
-- java -jar target/app.jar
※ この例ではSpring Boot 側に特に設定ファイルは必要ありません。2–app-port8080Spring Boot アプリがリッスンするポート番号3–dapr-http-port3500Dapr ランタイムがリッスンするポート番号4– java -jartarget/app.jarSpring Boot アプリの jar ファイルを同時に実行します。
通过Dapr API访问Spring Boot应用程序
我将从不同的终端发送请求。
$ curl http://localhost:3500/v1.0/invoke/hello-spring-dapr/method/api/data -w '\n'
发挥能力
{"message":"Hello World!"}
可以从Dapr API 中获取到“Hello World!”。
总结
-
- Spring Boot アプリの REST API を Dapr API 経由で呼び出すことが出来ました。
-
- この記事の例ではまだ Spring Boot 側のアプリに Dapr への依存関係はありません。
- 今後さらに Spring Boot から Dapr クライアントオブジェクトを操作する方法を学ぶ必要があります。
你觉得怎么样?在WSL Ubuntu上,可以方便地搭建使用Dapr运行时的开发环境。请务必试一试。今后我们还会介绍更多关于Ubuntu开发环境的内容,请一定期待。
推荐内容
请参考以下资料
- Dapr SDK Java