添加测试用 api
This commit is contained in:
parent
c3f11cde03
commit
62a1fa4521
13
api/pom.xml
13
api/pom.xml
@ -19,6 +19,19 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.skcks.docking.gb28181</groupId>
|
||||
<artifactId>gb28181-service</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.skcks.docking.gb28181</groupId>
|
||||
<artifactId>annotation</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
|
@ -0,0 +1,33 @@
|
||||
package cn.skcks.docking.gb28181.api.record;
|
||||
|
||||
import cn.skcks.docking.gb28181.annotation.web.JsonMapping;
|
||||
import cn.skcks.docking.gb28181.annotation.web.methods.GetJson;
|
||||
import cn.skcks.docking.gb28181.api.record.dto.GetInfoDTO;
|
||||
import cn.skcks.docking.gb28181.common.json.JsonResponse;
|
||||
import cn.skcks.docking.gb28181.config.SwaggerConfig;
|
||||
import cn.skcks.docking.gb28181.service.record.RecordService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springdoc.core.models.GroupedOpenApi;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Tag(name="历史录像")
|
||||
@RestController
|
||||
@JsonMapping("/record")
|
||||
@RequiredArgsConstructor
|
||||
public class RecordController {
|
||||
private final RecordService recordService;
|
||||
|
||||
@Bean
|
||||
public GroupedOpenApi recordApi() {
|
||||
return SwaggerConfig.api("Record", "/record");
|
||||
}
|
||||
|
||||
@GetJson("/getInfo")
|
||||
public JsonResponse<Void> getInfo(@ParameterObject GetInfoDTO dto){
|
||||
recordService.requestRecordInfo(dto.getDeviceId());
|
||||
return JsonResponse.success(null);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package cn.skcks.docking.gb28181.api.record.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(title = "查询历史录像")
|
||||
@Data
|
||||
public class GetInfoDTO {
|
||||
@Schema(description = "设备id")
|
||||
private String deviceId;
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package cn.skcks.docking.gb28181.config;
|
||||
|
||||
import io.swagger.v3.oas.models.info.Info;
|
||||
import io.swagger.v3.oas.models.info.License;
|
||||
import io.swagger.v3.oas.models.security.SecurityRequirement;
|
||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
||||
import lombok.Data;
|
||||
import org.springdoc.core.customizers.OpenApiCustomizer;
|
||||
import org.springdoc.core.models.GroupedOpenApi;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import static org.springdoc.core.utils.Constants.ALL_PATTERN;
|
||||
|
||||
|
||||
@Configuration
|
||||
@Data
|
||||
public class SwaggerConfig {
|
||||
public static final Info INFO;
|
||||
private static final License LICENSE;
|
||||
|
||||
static {
|
||||
INFO = new Info()
|
||||
.title("GB28181 Docking Platform API")
|
||||
.description("Matrix API description")
|
||||
.version("2.0");
|
||||
LICENSE = new License()
|
||||
.name("Apache 2.0")
|
||||
.url("http://www.apache.org/licenses/LICENSE-2.0.html");
|
||||
INFO.license(LICENSE);
|
||||
}
|
||||
|
||||
public static GroupedOpenApi api(String group, String path) {
|
||||
return GroupedOpenApi.builder()
|
||||
.group(group)
|
||||
.pathsToMatch(path + ALL_PATTERN)
|
||||
.addOpenApiCustomizer(openApi -> openApi.info(SwaggerConfig.INFO))
|
||||
.addOpenApiCustomizer(authOpenApiDocs())
|
||||
.build();
|
||||
}
|
||||
|
||||
private static OpenApiCustomizer authOpenApiDocs(){
|
||||
return openApi -> {
|
||||
// swagger 全局添加 token 认证选项
|
||||
openApi.addSecurityItem(new SecurityRequirement().addList("token"));
|
||||
openApi.getComponents()
|
||||
.addSecuritySchemes("token",
|
||||
new SecurityScheme()
|
||||
.type(SecurityScheme.Type.APIKEY)
|
||||
.in(SecurityScheme.In.HEADER)
|
||||
.name("token"));
|
||||
};
|
||||
}
|
||||
}
|
@ -1,10 +1,13 @@
|
||||
package cn.skcks.docking.gb28181.config;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@RequiredArgsConstructor
|
||||
public class WebConfig {
|
||||
public class WebConfig implements WebMvcConfigurer {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,31 @@
|
||||
package cn.skcks.docking.gb28181.service.record;
|
||||
|
||||
import cn.skcks.docking.gb28181.core.sip.service.SipService;
|
||||
import cn.skcks.docking.gb28181.orm.mybatis.dynamic.model.DockingDevice;
|
||||
import cn.skcks.docking.gb28181.service.docking.device.DockingDeviceService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.sip.SipProvider;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RecordService {
|
||||
private final DockingDeviceService deviceService;
|
||||
private final SipService sipService;
|
||||
|
||||
public void requestRecordInfo(String deviceId){
|
||||
DockingDevice device = deviceService.getDevice(deviceId);
|
||||
if(device == null){
|
||||
log.info("未能找到 编码为 => {} 的设备", deviceId);
|
||||
return;
|
||||
}
|
||||
|
||||
String transport = device.getTransport();
|
||||
String senderIp = device.getLocalIp();
|
||||
SipProvider provider = sipService.getProvider(transport, senderIp);
|
||||
log.info("provider => {}", provider);
|
||||
}
|
||||
}
|
@ -21,6 +21,12 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.skcks.docking.gb28181</groupId>
|
||||
<artifactId>api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.skcks.docking.gb28181</groupId>
|
||||
<artifactId>gb28181-service</artifactId>
|
||||
|
Loading…
Reference in New Issue
Block a user