mirror of
https://github.com/chirpstack/chirpstack.git
synced 2024-12-20 21:53:11 +00:00
.. | ||
gradle/wrapper | ||
build.gradle.kts | ||
gradlew | ||
gradlew.bat | ||
Makefile | ||
README.md | ||
settings.gradle.kts |
chirpstack-api
ChirpStack gRPC API message and service wrappers for Kotlin.
Install
An artifact is not yet public on Maven Central. You can build your own jar with
make jar
or install the artifact in your local Maven repository $HOME/.m2
with
make install
Usage
All messages, services, constants, etc. are auto-generated from the ChirpStack protobuf definitions. The result is that this package structure matches that of the protobuf definitions.
The protobuf definitions can be found here: https://github.com/chirpstack/chirpstack/tree/master/api/proto
Example
Maven
<dependency>
<groupId>io.chirpstack</groupId>
<artifactId>chirpstack-api-kotlin</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
Gradle
dependencies {
implementation("io.chirpstack:chirpstack-api-kotlin:1.0-SNAPSHOT")
}
Example #1: List tenants
Note: To make this example work you will also need to add kotlin coroutines as a dependency
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
}
import io.chirpstack.api.TenantServiceGrpcKt
import io.chirpstack.api.listTenantsRequest
import io.grpc.ManagedChannelBuilder
import io.grpc.Metadata
import kotlinx.coroutines.runBlocking
fun main() {
val channel = ManagedChannelBuilder
.forAddress("localhost", 8080)
.usePlaintext()
.build()
val token = "Bearer <INSERT_TOKEN_HERE>"
val metadata = Metadata()
val key = Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER)
metadata.put(key, token)
val stub = TenantServiceGrpcKt.TenantServiceCoroutineStub(channel)
val request = listTenantsRequest {
limit=10
}
val response = runBlocking { stub.list(request, metadata) }
println("Number of tenants: ${response.totalCount}")
}