Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 24 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<img alt="Maven Central Version" src="https://img.shields.io/maven-central/v/io.agora/agora-rest-client-core?colorB=brightgreen">
<img alt="GitHub License" src="https://img.shields.io/github/license/AgoraIO-Community/agora-rest-client-java">
<a href="https://github.com/AgoraIO-Community/agora-rest-client-java/actions/workflows/maven.yml"><img alt="Java CI with Maven" src="https://github.com/AgoraIO-Community/agora-rest-client-java/actions/workflows/maven.yml/badge.svg"></a>
<a href="https://github.com/AgoraIO-Community/agora-rest-client-java/actions/workflows/gitee-sync.yml"><img alt="gitee-sync" src="https://github.com/AgoraIO-Community/agora-rest-client-java/actions/workflows/gitee-sync.yml/badge.svg?branch=main"></a>
<img alt="GitHub" src="https://img.shields.io/github/v/release/AgoraIO-Community/agora-rest-client-java">
<img alt="GitHub Issues or Pull Requests" src="https://img.shields.io/github/issues-pr/AgoraIO-Community/agora-rest-client-java">
</p>
Expand Down Expand Up @@ -53,15 +54,15 @@ API 接口的包装和内部实现,可以帮助开发者更加方便的集成
package com.company.example;

import io.agora.rest.AgoraException;
import io.agora.rest.AgoraService;
import io.agora.rest.core.AgoraProperty;
import io.agora.rest.core.AgoraConfig;
import io.agora.rest.core.BasicAuthCredential;
import io.agora.rest.core.Credential;
import io.agora.rest.core.RegionArea;
import io.agora.rest.core.DomainArea;
import io.agora.rest.services.cloudrecording.api.req.StartResourceReq;
import io.agora.rest.services.cloudrecording.api.res.AcquireResourceRes;
import io.agora.rest.services.cloudrecording.api.res.StartResourceRes;
import io.agora.rest.services.cloudrecording.api.res.StopResourceRes;
import io.agora.rest.services.cloudrecording.CloudRecordingClient;
import io.agora.rest.services.cloudrecording.scenario.mix.req.AcquireMixRecordingResourceClientReq;
import io.agora.rest.services.cloudrecording.scenario.mix.req.StartMixRecordingResourceClientReq;
import io.agora.rest.services.cloudrecording.scenario.mix.res.QueryMixHLSAndMP4RecordingResourceRes;
Expand Down Expand Up @@ -94,26 +95,28 @@ public class Main {

public static void main(String[] args) throws Exception {

Credential basicAuthCredential = new BasicAuthCredential(username, password);
Credential credential = new BasicAuthCredential(username, password);

// Initialize AgoraService
AgoraService agoraService = new AgoraService(
AgoraProperty.builder()
.appId(appId)
.credential(basicAuthCredential)
// Specify the region where the server is located.
// Optional values are CN, NA, EU, AP, and the client will automatically
// switch to use the best domain name according to the configured region
.regionArea(RegionArea.CNRegionArea)
.build()
);
// Initialize AgoraConfig
AgoraConfig agoraConfig = AgoraConfig.builder()
.appId(appId)
.credential(credential)
// Specify the region where the server is located.
// Optional values are CN, US, EU, AP, and the client will automatically
// switch to use the best domain name according to the configured region
.domainArea(DomainArea.)
.build();

// Initialize CloudRecordingClient

CloudRecordingClient cloudRecordingClient = CloudRecordingClient.create(agoraConfig);


AcquireResourceRes acquireResourceRes;

// Acquire resource
try {
acquireResourceRes = agoraService.cloudRecording()
acquireResourceRes = cloudRecordingClient
.mixScenario()
.acquire(cname, uid, AcquireMixRecordingResourceClientReq.builder()
.build())
Expand Down Expand Up @@ -176,7 +179,7 @@ public class Main {

// Start resource
try {
startResourceRes = agoraService.cloudRecording()
startResourceRes = cloudRecordingClient
.mixScenario()
.start(cname, uid,
acquireResourceRes.getResourceId(),
Expand All @@ -203,11 +206,11 @@ public class Main {

Thread.sleep(3000);

QueryMixHLSAndMP4RecordingResourceRes queryResourceResp;
QueryMixHLSAndMP4RecordingResourceRes queryResourceRes;

// Query resource
try {
queryResourceRes = agoraService.cloudRecording()
queryResourceRes = cloudRecordingClient
.mixScenario()
.queryHLSAndMP4(startResourceRes.getResourceId(), startResourceRes.getSid())
.block();
Expand All @@ -220,7 +223,7 @@ public class Main {
return;
}

if (queryResourceRes == null || queryResourceResp.getServerResponse() == null) {
if (queryResourceRes == null || queryResourceRes.getServerResponse() == null) {
System.out.println("failed to query resource");
return;
}
Expand All @@ -233,7 +236,7 @@ public class Main {

// Stop resource
try {
stopResourceRes = agoraService.cloudRecording()
stopResourceRes = cloudRecordingClient
.mixScenario()
.stop(cname, uid, startResourceRes.getResourceId(), startResourceRes.getSid(),
true)
Expand All @@ -256,7 +259,6 @@ public class Main {
}
}


```

更多的示例可在 [Example](./examples) 查看
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package io.agora.rest.core;

public class AgoraProperty {
public class AgoraConfig {
private final String appId;

private final Credential credential;

private final RegionArea regionArea;
private final DomainArea domainArea;

private final HttpProperty httpProperty;

private AgoraProperty(Builder builder) {
private AgoraConfig(Builder builder) {
this.appId = builder.appId;
this.credential = builder.credential;
this.regionArea = builder.regionArea;
this.domainArea = builder.domainArea;
this.httpProperty = builder.httpProperty;
}

Expand All @@ -28,8 +28,8 @@ public Credential getCredential() {
return credential;
}

public RegionArea getRegionArea() {
return regionArea;
public DomainArea getDomainArea() {
return domainArea;
}

public HttpProperty getHttpProperty() {
Expand All @@ -38,10 +38,10 @@ public HttpProperty getHttpProperty() {

@Override
public String toString() {
return "AgoraProperty{" +
return "AgoraConfig{" +
"appId='" + appId + '\'' +
", credential=" + credential +
", regionArea=" + regionArea +
", domainArea=" + domainArea +
", httpProperty=" + httpProperty +
'}';
}
Expand All @@ -52,7 +52,7 @@ public static class Builder {

private Credential credential;

private RegionArea regionArea;
private DomainArea domainArea;

private HttpProperty httpProperty;

Expand All @@ -69,8 +69,8 @@ public Builder credential(Credential credential) {
return this;
}

public Builder regionArea(RegionArea regionArea) {
this.regionArea = regionArea;
public Builder domainArea(DomainArea domainArea) {
this.domainArea = domainArea;
return this;
}

Expand All @@ -79,11 +79,11 @@ private Builder httpProperty(HttpProperty httpProperty) {
return this;
}

public AgoraProperty build() {
public AgoraConfig build() {
if (httpProperty == null) {
this.httpProperty = HttpProperty.builder().build();
}
return new AgoraProperty(this);
return new AgoraConfig(this);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ public interface Context {

<T> Mono<T> sendRequest(String path, HttpMethod method, Object requestBody, Class<T> clazz);

AgoraProperty getProperty();
AgoraConfig getAgoraConfig();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@ public class DefaultContext implements Context {

private static final Logger logger = LoggerFactory.getLogger(DefaultContext.class);

private final AgoraProperty property;
private final AgoraConfig agoraConfig;

private final HttpClient httpClient;

private final Codec codec;

private final DomainPool domainPool;

public DefaultContext(AgoraProperty property) {
this.property = property;
this.httpClient = HttpClientFactory.createHttpClient(property);
this.domainPool = new DomainPool(property.getRegionArea());
public DefaultContext(AgoraConfig agoraConfig) {
this.agoraConfig = agoraConfig;
this.httpClient = HttpClientFactory.createHttpClient(agoraConfig);
this.domainPool = new DomainPool(agoraConfig.getDomainArea());
this.codec = new JsonCodec();
}

Expand Down Expand Up @@ -73,7 +73,7 @@ public <T> Mono<T> sendRequest(String path, HttpMethod method, Object requestBod
}

@Override
public AgoraProperty getProperty() {
return this.property;
public AgoraConfig getAgoraConfig() {
return this.agoraConfig;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,45 +4,45 @@
import java.util.Collections;
import java.util.List;

public enum RegionArea {
public enum DomainArea {
/**
* Unknown region area
* Unknown domain area
*/
UnkonwnRegionArea(Collections.emptyList(), Collections.emptyList()),
Unknown(Collections.emptyList(), Collections.emptyList()),

/**
* US region area
* US domain area
*/
USRegionArea(
US(
Arrays.asList("api-us-west-1", "api-us-east-1"),
Arrays.asList("agora.io", "sd-rtn.com")),

/**
* EU region area
* EU domain area
*/
EURegionArea(
EU(
Arrays.asList("api-eu-west-1", "api-eu-central-1"),
Arrays.asList("agora.io", "sd-rtn.com")),

/**
* AP region area
* AP domain area
*/
APRegionArea(
AP(
Arrays.asList("api-ap-southeast-1", "api-ap-northeast-1"),
Arrays.asList("agora.io", "sd-rtn.com")),

/**
* CN region area
* CN domain area
*/
CNRegionArea(
CN(
Arrays.asList("api-cn-east-1", "api-cn-north-1"),
Arrays.asList("sd-rtn.com", "agora.io"));

private final List<String> regionDomainPrefixes;

private final List<String> majorDomainSuffixes;

RegionArea(List<String> regionDomainPrefixes, List<String> majorDomainSuffixes) {
DomainArea(List<String> regionDomainPrefixes, List<String> majorDomainSuffixes) {
this.regionDomainPrefixes = Collections.unmodifiableList(regionDomainPrefixes);
this.majorDomainSuffixes = Collections.unmodifiableList(majorDomainSuffixes);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ public class DomainPool {

private final Logger logger = LoggerFactory.getLogger(DomainPool.class);

public DomainPool(RegionArea domainArea) {
if (domainArea == null || domainArea == RegionArea.UnkonwnRegionArea) {
public DomainPool(DomainArea domainArea) {
if (domainArea == null || domainArea == DomainArea.Unknown) {
throw new AgoraInvalidArgumentException("invalid domain area");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ public class HttpClientFactory {

private static final Logger logger = LoggerFactory.getLogger(HttpClientFactory.class);

public static HttpClient createHttpClient(AgoraProperty agoraProperty) {
public static HttpClient createHttpClient(AgoraConfig agoraConfig) {
ConnectionProvider connectionProvider = ConnectionProvider.builder("agora-rest-client")
.maxConnections(agoraProperty.getHttpProperty().getHttpConnectionPoolSize())
.pendingAcquireTimeout(Duration.ofMillis(agoraProperty.getHttpProperty().getHttpConnectionPendingAcquireTimout()))
.maxIdleTime(Duration.ofMillis(agoraProperty.getHttpProperty().getHttpConnectionMaxIdleTime()))
.maxLifeTime(Duration.ofMillis(agoraProperty.getHttpProperty().getHttpConnectionMaxLifeTime()))
.evictInBackground(Duration.ofMillis(agoraProperty.getHttpProperty().getHttpConnectionEvictInBackground()))
.pendingAcquireMaxCount(agoraProperty.getHttpProperty().getHttpConnectionPendingAcquireMaxCount())
.maxConnections(agoraConfig.getHttpProperty().getHttpConnectionPoolSize())
.pendingAcquireTimeout(Duration.ofMillis(agoraConfig.getHttpProperty().getHttpConnectionPendingAcquireTimout()))
.maxIdleTime(Duration.ofMillis(agoraConfig.getHttpProperty().getHttpConnectionMaxIdleTime()))
.maxLifeTime(Duration.ofMillis(agoraConfig.getHttpProperty().getHttpConnectionMaxLifeTime()))
.evictInBackground(Duration.ofMillis(agoraConfig.getHttpProperty().getHttpConnectionEvictInBackground()))
.pendingAcquireMaxCount(agoraConfig.getHttpProperty().getHttpConnectionPendingAcquireMaxCount())
.lifo()
.build();

Expand All @@ -32,11 +32,11 @@ public static HttpClient createHttpClient(AgoraProperty agoraProperty) {
System.getProperty("os.arch"),
System.getProperty("os.name"),
AgoraVersion.getVersion()));
if (agoraProperty.getCredential() != null) {
agoraProperty.getCredential().setAuthorization(h);
if (agoraConfig.getCredential() != null) {
agoraConfig.getCredential().setAuthorization(h);
}
})
.wiretap("io.agora.rest.core.http", LogLevel.DEBUG, agoraProperty.getHttpProperty().getHttpLogFormat())
.wiretap("io.agora.rest.core.http", LogLevel.DEBUG, agoraConfig.getHttpProperty().getHttpLogFormat())
.doOnRequestError((req, t) -> logger.error("request error:{}", t.getMessage()));

}
Expand Down
Loading
Loading