添加测试用 api

This commit is contained in:
shikong 2023-08-22 11:24:33 +08:00
parent c3f11cde03
commit 62a1fa4521
7 changed files with 151 additions and 1 deletions

View File

@ -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>

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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"));
};
}
}

View File

@ -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 {
}

View File

@ -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);
}
}

View File

@ -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>