rest api
This commit is contained in:
17
README.md
17
README.md
@@ -7,10 +7,21 @@
|
||||
|
||||
ZLMediaKit的spring-boot starter, 对[ZLMediaKit](https://github.com/ZLMediaKit/ZLMediaKit)的API进行了封装,方便使用。支持集群化管理。
|
||||
|
||||
[文档链接](https://github.com/lunasaw/zlm-spring-boot-starter/blob/master/zlm-api.md)
|
||||
[文档链接](https://github.com/lunasaw/zlm-spring-boot-starter/blob/master/zlm-api.md) [API文档](https://lunasaw.github.io/zlm-spring-boot-starter/)
|
||||
|
||||
[API文档](https://lunasaw.github.io/zlm-spring-boot-starter/)
|
||||

|
||||
### 快速开始
|
||||
|
||||
Hook接口使用类似io.github.lunasaw.zlm.service.LocalZlmHookService,实现ZlmHookService接口,重写方法,即可实现对ZLM的管理,或者继承AbstractZlmHookService,重写需要的方法
|
||||
**默认实现了ZlmHookService接口的所有方法,均为放通默认返回,可以根据需要重写**
|
||||
|
||||
|
||||
> 
|
||||
|
||||
普通api接口使用直接静态方法调用io.github.lunasaw.zlm.api.ZlmRestService
|
||||
|
||||
> 
|
||||
|
||||
```yaml
|
||||
|
||||
> 引入spring-boot-starter
|
||||
|
||||
|
||||
BIN
images/restapi.png
Normal file
BIN
images/restapi.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 228 KiB |
@@ -1,5 +1,20 @@
|
||||
package io.github.lunasaw.zlm.api;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.TypeReference;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.luna.common.check.Assert;
|
||||
import com.luna.common.file.FileTools;
|
||||
import com.luna.common.net.HttpUtils;
|
||||
import io.github.lunasaw.zlm.constant.ApiConstants;
|
||||
import io.github.lunasaw.zlm.entity.*;
|
||||
import io.github.lunasaw.zlm.entity.req.MediaReq;
|
||||
import io.github.lunasaw.zlm.entity.req.RecordReq;
|
||||
import io.github.lunasaw.zlm.entity.req.SnapshotReq;
|
||||
import io.github.lunasaw.zlm.entity.rtp.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.hc.core5.http.ClassicHttpResponse;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
@@ -10,26 +25,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.hc.core5.http.ClassicHttpResponse;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.TypeReference;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.luna.common.check.Assert;
|
||||
import com.luna.common.file.FileTools;
|
||||
import com.luna.common.net.HttpUtils;
|
||||
|
||||
import io.github.lunasaw.zlm.config.ZlmProperties;
|
||||
import io.github.lunasaw.zlm.constant.ApiConstants;
|
||||
import io.github.lunasaw.zlm.entity.*;
|
||||
import io.github.lunasaw.zlm.entity.req.MediaReq;
|
||||
import io.github.lunasaw.zlm.entity.req.RecordReq;
|
||||
import io.github.lunasaw.zlm.entity.req.SnapshotReq;
|
||||
import io.github.lunasaw.zlm.entity.rtp.*;
|
||||
|
||||
/**
|
||||
* @author luna
|
||||
* @version 1.0
|
||||
@@ -40,6 +35,7 @@ public class ZlmRestService {
|
||||
|
||||
private static final String URL = "http://127.0.0.1:9092";
|
||||
private static final String SECRET = "zlm";
|
||||
|
||||
/**
|
||||
* 获取版本信息
|
||||
*/
|
||||
@@ -49,6 +45,10 @@ public class ZlmRestService {
|
||||
});
|
||||
}
|
||||
|
||||
public static ServerResponse<List<String>> getApiList(String host, String secret) {
|
||||
return getApiList(host, secret, new HashMap<>());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取流媒体服务器列表
|
||||
*/
|
||||
@@ -154,7 +154,7 @@ public class ZlmRestService {
|
||||
* @param host
|
||||
* @param secret
|
||||
* @param localPort 筛选本机端口,例如筛选rtsp链接:554
|
||||
* @param peerIp 筛选客户端ip
|
||||
* @param peerIp 筛选客户端ip
|
||||
* @return
|
||||
*/
|
||||
public static ServerResponse<List<TcpLink>> getAllSession(String host, String secret, String localPort, String peerIp) {
|
||||
@@ -439,7 +439,7 @@ public class ZlmRestService {
|
||||
|
||||
/**
|
||||
* 获取rtp推流信息
|
||||
*
|
||||
*
|
||||
* @param streamId RTP的ssrc,16进制字符串或者是流的id(openRtpServer接口指定)
|
||||
*/
|
||||
public static RtpInfoResult getRtpInfo(String host, String secret, String streamId) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.github.lunasaw.zlm.config;
|
||||
|
||||
import io.github.lunasaw.zlm.hook.service.impl.DefaultZlmHookServiceImpl;
|
||||
import io.github.lunasaw.zlm.hook.service.ZlmHookService;
|
||||
import io.github.lunasaw.zlm.hook.service.impl.DefaultZlmHookServiceImpl;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package io.github.lunasaw.zlm.hook.service;
|
||||
|
||||
import io.github.lunasaw.zlm.entity.ServerNodeConfig;
|
||||
import io.github.lunasaw.zlm.hook.param.*;
|
||||
import io.github.lunasaw.zlm.hook.service.ZlmHookService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* @author luna
|
||||
* @version 1.0
|
||||
* @date 2023/12/3
|
||||
* @description: 默认的钩子服务实现
|
||||
*/
|
||||
@Slf4j
|
||||
public abstract class AbstractZlmHookService implements ZlmHookService {
|
||||
@Override
|
||||
public void onServerKeepLive(OnServerKeepaliveHookParam param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResult onPlay(OnPlayHookParam param) {
|
||||
return HookResult.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnPublish onPublish(OnPublishHookParam param) {
|
||||
return HookResultForOnPublish.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStreamChanged(OnStreamChangedHookParam param) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForStreamNoneReader onStreamNoneReader(OnStreamNoneReaderHookParam param) {
|
||||
return HookResultForStreamNoneReader.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStreamNotFound(OnStreamNotFoundHookParam param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServerStarted(ServerNodeConfig param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSendRtpStopped(OnSendRtpStoppedHookParam param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRtpServerTimeout(OnRtpServerTimeoutHookParam param) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnHttpAccess onHttpAccess(OnHttpAccessParam param) {
|
||||
return HookResultForOnHttpAccess.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnRtspRealm onRtspRealm(OnRtspRealmHookParam param) {
|
||||
return HookResultForOnRtspRealm.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnRtspAuth onRtspAuth(OnRtspAuthHookParam param) {
|
||||
return HookResultForOnRtspAuth.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFlowReport(OnFlowReportHookParam param) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,76 +1,10 @@
|
||||
package io.github.lunasaw.zlm.hook.service.impl;
|
||||
|
||||
import io.github.lunasaw.zlm.entity.ServerNodeConfig;
|
||||
import io.github.lunasaw.zlm.hook.param.*;
|
||||
import io.github.lunasaw.zlm.hook.service.ZlmHookService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import io.github.lunasaw.zlm.hook.service.AbstractZlmHookService;
|
||||
|
||||
/**
|
||||
* @author luna
|
||||
* @version 1.0
|
||||
* @date 2023/12/3
|
||||
* @description: 默认的钩子服务实现
|
||||
* @date 2023/12/5
|
||||
*/
|
||||
@Slf4j
|
||||
public class DefaultZlmHookServiceImpl implements ZlmHookService {
|
||||
@Override
|
||||
public void onServerKeepLive(OnServerKeepaliveHookParam param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResult onPlay(OnPlayHookParam param) {
|
||||
return HookResult.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnPublish onPublish(OnPublishHookParam param) {
|
||||
return HookResultForOnPublish.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStreamChanged(OnStreamChangedHookParam param) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForStreamNoneReader onStreamNoneReader(OnStreamNoneReaderHookParam param) {
|
||||
return HookResultForStreamNoneReader.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStreamNotFound(OnStreamNotFoundHookParam param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServerStarted(ServerNodeConfig param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSendRtpStopped(OnSendRtpStoppedHookParam param) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRtpServerTimeout(OnRtpServerTimeoutHookParam param) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnHttpAccess onHttpAccess(OnHttpAccessParam param) {
|
||||
return HookResultForOnHttpAccess.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnRtspRealm onRtspRealm(OnRtspRealmHookParam param) {
|
||||
return HookResultForOnRtspRealm.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HookResultForOnRtspAuth onRtspAuth(OnRtspAuthHookParam param) {
|
||||
return HookResultForOnRtspAuth.SUCCESS();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFlowReport(OnFlowReportHookParam param) {
|
||||
|
||||
}
|
||||
public class DefaultZlmHookServiceImpl extends AbstractZlmHookService {
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package io.github.lunasaw.zlm.service;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import io.github.lunasaw.zlm.entity.ServerNodeConfig;
|
||||
import io.github.lunasaw.zlm.hook.param.*;
|
||||
import io.github.lunasaw.zlm.hook.service.ZlmHookService;
|
||||
import io.github.lunasaw.zlm.hook.service.AbstractZlmHookService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.springframework.stereotype.Service;
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ZlmHookServiceImpl implements ZlmHookService {
|
||||
public class LocalZlmHookService extends AbstractZlmHookService {
|
||||
@Override
|
||||
public void onServerKeepLive(OnServerKeepaliveHookParam param) {
|
||||
}
|
||||
Reference in New Issue
Block a user