2. 快速入门
大多数服务提供者应用程序除了 Open Service Broker API 端点外,还实现了 API 或 Web UI 端点。这些额外的端点可能提供有关应用程序的信息、提供仪表板用户界面,或提供对应用程序行为的控制。开发者可以使用 Spring WebFlux 或 Spring MVC 实现这些额外的端点。
虽然 spring-cloud-open-service-broker 在其 API 中使用了响应式返回类型,但同时支持阻塞式 Web 堆栈(例如基于 Tomcat/Jetty 的 spring-boot-starter-web)和非阻塞式 Web 堆栈(例如基于 Netty/Undertow 的 spring-boot-starter-webflux)。请参阅模块 spring-cloud-open-service-broker-acceptance-webmvc 和 spring-cloud-open-service-broker-acceptance-webflux 中各自的接受性测试。
| Spring Cloud Open Service Broker Starters不包含对 Spring WebFlux 或 Spring MVC 的传递依赖。</p><p>需要一个 Spring Boot Web Starters以激活自动配置。 |
2.1. Maven 依赖
要在 Spring Web 应用程序中使用 Spring Cloud Open Service Broker,请添加相应的Starters(starter),如下所示:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-open-service-broker</artifactId>
<version>${version}</version>
</dependency>
</dependencies>
2.2. Gradle 依赖项
要在 Spring Web 应用程序中使用 Spring Cloud Open Service Broker,请添加相应的Starters(starter),如下所示:
dependencies {
api 'org.springframework.cloud:spring-cloud-starter-open-service-broker:${version}'
}
2.3. 配置服务代理
查看 Spring Boot 文档 以开始构建 Spring Boot 应用程序。
该框架提供了实现服务代理所需大多数组件的默认实现。在 Spring Boot 风格下,您可以通过提供自己的 Spring Bean 实现来覆盖默认行为,而框架则会退回到其默认配置。
首先,在服务提供者的主应用类上使用 @SpringBootApplication 注解,如下所示:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这将触发默认配置的包含。
2.4. 使用唯一的平台 ID
服务代理的每个请求都可以通过路径变量接收一个 platformInstanceId。这使得服务代理能够检测其已注册的平台身份,如 Cloud Foundry 文档 中所述。
例如,操作员可以将服务提供者注册到一个CF平台实例,如下所示:
$ cf create-service-broker mybroker username password https://mybroker.app.local/east
操作员还可以将同一服务代理注册到另一个CF平台实例,如下所示:
$ cf create-service-broker mybroker username password https://mybroker.app.local/west
经纪人随后可以预期对以下路径的请求,其中请求对象中的 platformInstanceId 字段包含值 "east" 或 "west":
- https://username:[email protected]/east/v2/catalog
- https://username:[email protected]/west/v2/catalog
2.5. 自定义服务代理路径
有时,自定义服务代理路径的前缀会很有用。例如,您的应用程序可能出于其他目的提供冲突的端点。您可以使用 spring.cloud.openservicebroker.base-path 属性来更改代理路径的前缀,如下所示:
spring.cloud.openservicebroker.base-path=/broker
前面的 application.properties 示例将端点从 / 更改为 /broker/(例如,/broker/v2/catalog)。