이 Kotlin SDK를 사용하면 JVM 기반 애플리케이션에서 Vonage API를 사용할 수 있습니다. Vonage 계정을 만들어야합니다.
우리는 또한 다른 언어로 서버 SDK를 제공합니다.
또한 Android, iOS 및 JavaScript 용 클라이언트 측 SDK를 제공합니다. Vonage Developer Portal의 모든 SDK 및 통합을 참조하십시오.
릴리스는 Maven Central에 게시됩니다. 빌드 시스템에 대한 지침은 스 니펫 섹션에서 찾을 수 있습니다. 여기에서도 사용할 수 있습니다. 각 버전의 릴리스 노트는 ChangElog에서 찾을 수 있습니다.
프로젝트에 SDK를 포함시키는 지침은 다음과 같습니다.
다음을 build.gradle
또는 build.gradle.kts
파일에 추가하십시오.
dependencies {
implementation( " com.vonage:server-sdk-kotlin:1.1.0 " )
}
pom.xml
파일의 <dependencies>
섹션에 다음을 추가하십시오.
< dependency >
< groupId >com.vonage</ groupId >
< artifactId >server-sdk-kotlin</ artifactId >
< version >1.1.0</ version >
</ dependency >
참고 : Maven 또는 Gradle과 같은 종속성 관리가있는 도구를 사용하는 것이 좋습니다 .
또는 REPO를 복제하고 JAR 파일을 직접 빌드 할 수 있습니다.
git clone [email protected]:vonage/vonage-kotlin-sdk.git
mvn install -P uberjar
uberjar
프로파일은 Repo의 루트에있는 target
디렉토리에 포함 된 모든 종속성이 포함 된 JAR 파일을 만듭니다. 그런 다음 프로젝트의 클래스 경로에 이것을 포함시킬 수 있습니다.
SDK는 시작하기 위해 구성이 거의 필요하지 않습니다.
기본 구성의 경우 API 키 및 비밀, 개인 키 및 응용 프로그램 ID 또는 둘 다를 사용하여 Vonage 계정 자격 증명을 지정하면됩니다. 모든 API와의 호환성을 최대한 활용하려면 다음과 같은 두 인증 방법을 지정하는 것이 좋습니다.
import com.vonage.client.kt.Vonage
val vonage = Vonage {
apiKey( API_KEY ); apiSecret( API_SECRET )
applicationId( APPLICATION_ID )
privateKeyPath( PRIVATE_KEY_PATH )
}
다음을 설정하여 편의를 위해 환경 변수를 사용할 수도 있습니다.
VONAGE_API_KEY
계정 API 키VONAGE_API_SECRET
계정 API 비밀VONAGE_SIGNATURE_SECRET
(고급, 선택 사항) SMS API를 사용할 때 서명 된 요청에 대한 서명 비밀VONAGE_APPLICATION_ID
사용하려는 Vonage 응용 프로그램의 UUIDVONAGE_PRIVATE_KEY_PATH
응용 프로그램의 개인 키 파일로의 절대 경로그런 다음 클라이언트를 다음과 같이 인스턴스화하십시오.
val vonage = Vonage { authFromEnv() }
Instantiation 동안 httpConfig
사용하여 Base URI (예 : 통합 테스트 수행) 및 HTTP 요청 시간 초과를 구성 할 수 있습니다.
val vonageClient = Vonage {
authFromEnv()
httpConfig {
baseUri( " http://localhost:8976 " )
timeoutMillis( 15000 )
}
}
다른 SDK와 마찬가지로 아키텍처는 Vonage
클래스를 기반으로하며 HTTP 클라이언트의 인증 자격 증명 및 선택적 고급 설정을 정의합니다. 클래스에는 지원되는 각 API에 대한 필드가 있으며 해당 API에 사용 가능한 메소드가 포함 된 객체를 반환합니다. SDK가 다른 SDK와 다른 경우, 평평한 방법 목록이 아닌 CRUD 작업에 리소스 기반 접근법을 사용한다는 것입니다. 이들은 각 API 리소스에 대해 정의 된 내부 클래스이며 항상 Existing
ExistingCall
, ExistingSession
, ExistingApplication
등과 같은 기존의 접두사입니다. 일반적인 규칙으로, 고유 식별자가있는 리소스는 해당 Existing[Resource]
클래스가 있습니다. Java SDK의 경우와 마찬가지로 해당 리소스의 ID를 부모 클래스의 메소드에 반복적으로 전달하는 대신 해당 리소스가 있습니다. 이 리소스 클래스는 최상위 API 클래스의 메소드 호출로 구성됩니다. 예를 들어, ExistingSession
과 함께 작업하려면 client.video.session(SESSION_ID)
수행합니다. 여기서 client
Vonage
의 인스턴스이며 SESSION_ID
작업하려는 비디오 세션의 고유 식별자입니다.
검색 가능한 스 니펫 목록을 포함하여 코드 스 니펫 저장소에서 전체 실행 가능한 코드 샘플을 찾을 수 있습니다.
SDK는 KDOC로 완전히 문서화되어 있으므로 IDE의 전체 문서가 있어야합니다. 전체 문서를 얻으려면 Intellij에서 "다운로드 소스"를 클릭해야 할 수도 있습니다. 또는 Javadoc.io와 같은 서비스를 사용하여 문서를 찾아 볼 수 있으며, 이는 Maven Central의 아티팩트에서 문서를 제공합니다.
특정 API에 대한 도움은 지원되는 API 섹션에 제공된 링크를 사용하여 개발자 포털의 관련 문서를 참조하십시오. 완전성을 위해 불일치가 있다고 생각되면 API 사양을 참조하십시오.
Q : Vonage Java Server SDK 대신이 SDK를 사용하는 이유는 무엇입니까?
A : 이 Kotlin SDK는 실제로 Kotlin의 사용자 경험을 향상시키기 위해 Java SDK를 기반으로합니다. 구문 설탕을 추가하므로 더 관용 DSL과 같은 구문, 선택적 및 기본값 등이있는 이름의 매개 변수를 선호하는 성가신 빌더 패턴을 피할 수 있습니다. 또한, 당신은 "플랫폼 유형"( !
)에서 더 부분적으로 차폐되어 있으므로 요청을 만들 때 무효가 무엇인지에 대한 더 나은 아이디어가 있습니다. v1.0.0 발표 블로그 게시물의 차이점에 대한 자세한 내용을 읽을 수 있습니다.
Q : 스레드 안전에 대한 귀하의 정책은 무엇입니까?
A : Java Server SDK와 마찬가지로 한 번만 클라이언트를 사용해야합니다. 멀티 스레드 환경에서 SDK를 사용하려면 각 스레드에 대해 별도의 Vonage
인스턴스를 만들거나 ThreadLocal 인스턴스를 사용하십시오.
Q : SDK를 종속성으로 포함시킬 때 프로젝트에 문제가 있습니다. 이것을 어떻게 문제를 해결할 수 있습니까?
A : 이 블로그 게시물을 참조하십시오. 요컨대, 프로젝트 에서이 SDK의 전이 종속성과 충돌하는 의존성 버전이 상충 될 수 있습니다.
Q : 시간 초과와 같은 HTTP 요청 문제가 발생합니다. 이것을 어떻게 해결하거나보고 할 수 있습니까?
A : 이 라이브러리는 아래에 Java SDK를 사용하여 Apache HTTP Client 4를 사용하므로 시스템 속성을 사용하여 클라이언트를 구성하거나 Vonage
클래스 에서이 SDK의 httpConfig
메서드를 사용할 수 있습니다. 기본 클라이언트에 문제가 있다고 생각되면 Vonage Java SDK 리포지토리에서 환경 세부 정보 (JVM 런타임 버전, SDK 버전, 운영 체제 등)를 포함하여 최소한의 재현 가능한 예제로 문제를 제기하십시오.
Q : 내 문제가 SDK에 있는지 확실하지 않습니다. 도움을 받으려면 어떻게해야합니까?
A : 연락처 정보를 포함한 지원 페이지를 참조하십시오.
우리는이 도서관에 기여합니다!
새로운 기능을 추가하려는 경우 먼저 우리와 대화하는 것이 좋습니다. 그렇지 않으면 라이브러리의 버그 보고서, 버그 수정 및 피드백에 항상 감사합니다. 다음 채널을 통해 저희에게 연락 할 수도 있습니다.