添加测试用 api
This commit is contained in:
parent
c3f11cde03
commit
62a1fa4521
13
api/pom.xml
13
api/pom.xml
@ -19,6 +19,19 @@
|
|||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<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>
|
<dependency>
|
||||||
<groupId>org.springdoc</groupId>
|
<groupId>org.springdoc</groupId>
|
||||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
<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;
|
package cn.skcks.docking.gb28181.config;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Configuration
|
@Configuration
|
||||||
@RequiredArgsConstructor
|
@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>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.skcks.docking.gb28181</groupId>
|
||||||
|
<artifactId>api</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.skcks.docking.gb28181</groupId>
|
<groupId>cn.skcks.docking.gb28181</groupId>
|
||||||
<artifactId>gb28181-service</artifactId>
|
<artifactId>gb28181-service</artifactId>
|
||||||
|
Loading…
Reference in New Issue
Block a user