Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nexmo/nexmo-spring-boot-starter
Spring Boot Starter for Nexmo
https://github.com/nexmo/nexmo-spring-boot-starter
java kotlin nexmo spring spring-boot starter vonage
Last synced: 26 days ago
JSON representation
Spring Boot Starter for Nexmo
- Host: GitHub
- URL: https://github.com/nexmo/nexmo-spring-boot-starter
- Owner: Nexmo
- License: mit
- Created: 2019-05-08T19:16:31.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-25T02:54:17.000Z (2 months ago)
- Last Synced: 2024-11-15T03:04:42.399Z (about 1 month ago)
- Topics: java, kotlin, nexmo, spring, spring-boot, starter, vonage
- Language: Kotlin
- Size: 49.8 KB
- Stars: 5
- Watchers: 15
- Forks: 5
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ⚠️ This repository is no longer maintained.
**Please use [Vonage-Community/sample-serversdk-java-springboot](https://github.com/Vonage-Community/sample-serversdk-java-springboot) instead.**
## Support Notice
This is an archived repository. If you have any questions, feel free to reach out to us at [email protected] or through our [Community Slack](https://developer.vonage.com/community/slack).
## Nexmo Spring Boot Starter
[![Maven Central](https://img.shields.io/maven-central/v/com.nexmo/nexmo-spring-boot-starter.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.nexmo%22%20AND%20a:%22nexmo-spring-boot-starter%22)
[![Build Status](https://travis-ci.org/Nexmo/nexmo-spring-boot-starter.svg?branch=main)](https://travis-ci.org/Nexmo/nexmo-spring-boot-starter)
[![codecov](https://codecov.io/gh/Nexmo/nexmo-spring-boot-starter/branch/master/graph/badge.svg)](https://codecov.io/gh/Nexmo/nexmo-spring-boot-starter)This Spring Boot Starter has been provided to help with integrating the [Nexmo Java SDK](https://github.com/Nexmo/nexmo-java) into your [Spring Boot](https://spring.io/projects/spring-boot) project.
* [Installation](#installation)
* [Usage](#usage)
* [Customizing the NexmoClient](#customizing-the-nexmoclient)
* [Customize Nexmo Client Version](#customize-nexmo-client-version)
### InstallationFor Gradle:
```groovy
repositories {
mavenCentral()
}dependencies {
implementation 'com.nexmo:nexmo-spring-boot-starter:1.1.0'
}
```For Maven:
```xml
com.nexmo
nexmo-spring-boot-starter
1.1.0```
### Usage
The Nexmo Spring Boot Starter will automatically configure instances of the `NexmoClient.Builder`, `NexmoClient`, and any of the other sub-clients (`AccountClient`, `VoiceClient`, etc..) once you have provided the required configuration values.
* For help understanding our APIs, check out our [developer portal](https://developer.nexmo.com/).
* There are also **many useful code samples** in our [nexmo/nexmo-java-code-snippets](https://github.com/Nexmo/nexmo-java-code-snippets) repository.#### Configuration
The following configuration values are used to configure the starter. Check out the [Application Property Files](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files) and [Externalized Configuration](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config) reference in the Spring Boot documentation for how to provide configuration values.
##### API Key and Secret Configuration
```
nexmo.creds.api-key=your-api-key
nexmo.creds.secret=your-api-secret
```This will give you access to automatically wire in the `NexmoClient`, `AccountClient`, `ApplicationClient`, `ConversionClient`, `InsightClient`, `NumbersClient`, `RedactClient`, `SmsClient`, `SnsClient`, and `VerifyClient`.
You can also provide a signature secret:
```
nexmo.creds.api-key=your-api-key
nexmo.creds.signature=signature
```##### Application ID and Private Key Configuration
To gain access to the `VoiceClient` you will need to provide a [Nexmo Application ID]() and location or contents of a private key file associated with the Nexmo Application.Here is an example providing the path to the key:
```
nexmo.creds.application-id=application-id
nexmo.creds.private-key-path=/path/to/your/private.key
```Here is an example providing the contents of the key:
```
nexmo.creds.application-id=application-id
nexmo.creds.private-key-contents=contents-of-the-key
```#### Customizing the `NexmoClient`
By default, the auto configuration will create a `NexmoClient.Builder` using the information provided in your `application.properties`, `application.yml`, or other external configuration source. However, when registering the `NexmoClient` and all of the other sub-clients, the auto configuration can opt to use a pre-registered `NexmoClient.Builder`.
For example, if you would like to customize the base URI that the library uses, you can register a custom version of the `NexmoClient.Builder` in your configuration class:
```java
@Autowired
NexmoCredentialsProperties nexmoCredentialsProperties;@Bean
public NexmoClient.Builder customNexmoBuilder() {
return NexmoClient.builder()
.apiKey(nexmoCredentialsProperties.getApiKey())
.apiSecret(nexmoCredentialsProperties.getSecret())
.httpConfig(HttpConfig.builder().baseUri("https://example.com").build());
}
```
> Note that you must include your credentials as shown in this example. This builder completely replaces the automatically configured one.### Customize Nexmo Client Version
By default, the Nexmo Spring Boot Starter will transitively define Nexmo Client to the latest version at its release. You can override this by adding a dependency on the Nexmo Client, bringing in `4.2.0` for example:
For Gradle:
```groovy
repositories {
mavenCentral()
}dependencies {
implementation 'com.nexmo:client:4.2.0'
}
```For Maven:
```xml
com.nexmo
client
4.2.0```
Bringing in older versions of the supported Nexmo Client, may result in some unforseen consequences and build errors. As a result here is a list of each version targeted by each version of the starter:
| Nexmo Spring Boot Starter | Nexmo Java Client |
|---|---|
| v1.0.0 | v4.3.0 |
| v1.0.1 | v4.3.1 |
| v1.1.0 | v4.4.0 |