Merge pull request 'release: 2026-04-08.2 (13건 커밋)' (#13) from develop into main
All checks were successful
Build and Deploy SNP Global / build-and-deploy (push) Successful in 28s
All checks were successful
Build and Deploy SNP Global / build-and-deploy (push) Successful in 28s
This commit is contained in:
커밋
2fab1b56a3
@ -4,6 +4,11 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2026-04-08.2]
|
||||
|
||||
### 추가
|
||||
- UpdatedRiskList 엔드포인트 변경 및 Ship 데이터 조회 모듈 추가
|
||||
|
||||
## [2026-04-08]
|
||||
|
||||
### 변경
|
||||
|
||||
@ -39,9 +39,9 @@ public class RiskController extends BaseBypassController {
|
||||
|
||||
@Operation(
|
||||
summary = "기간 내 변경된 위험지표 조회",
|
||||
description = "Gets details of the IMOs of all ships with compliance updates"
|
||||
description = "Gets details of the IMOs of all ships with risk updates"
|
||||
)
|
||||
@GetMapping("/UpdatedComplianceList")
|
||||
@GetMapping("/UpdatedRiskList")
|
||||
public ResponseEntity<JsonNode> getUpdatedComplianceListData(@Parameter(description = "Time/seconds are optional", example = "2026-03-30T07:01:27.000Z")
|
||||
@RequestParam(required = true) String fromDate,
|
||||
@Parameter(description = "Time/seconds are optional. If unspecified, the current UTC date and time is used", example = "2026-03-31T07:01:27.000Z")
|
||||
|
||||
@ -16,7 +16,7 @@ public class UpdatedComplianceListService extends BaseBypassService<JsonNode> {
|
||||
|
||||
public UpdatedComplianceListService(
|
||||
@Qualifier("maritimeServiceApiWebClient") WebClient webClient) {
|
||||
super(webClient, "/RiskAndCompliance/UpdatedComplianceList", "기간 내 변경된 위험지표 조회",
|
||||
super(webClient, "/RiskAndCompliance/UpdatedRiskList", "기간 내 변경된 위험지표 조회",
|
||||
new ParameterizedTypeReference<>() {},
|
||||
new ParameterizedTypeReference<>() {});
|
||||
}
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.snp.batch.jobs.web.ship.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.snp.batch.common.web.controller.BaseBypassController;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import com.snp.batch.jobs.web.ship.service.GetShipDataByIHSLRorIMOService;
|
||||
|
||||
/**
|
||||
* Ship bypass API
|
||||
* S&P Maritime API에서 데이터를 실시간 조회하여 JSON을 그대로 반환
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/ship")
|
||||
@RequiredArgsConstructor
|
||||
@Tag(name = "Ship", description = "[Ship API] Ship bypass API")
|
||||
public class ShipController extends BaseBypassController {
|
||||
|
||||
private final GetShipDataByIHSLRorIMOService getShipDataByIHSLRorIMOService;
|
||||
|
||||
@Operation(
|
||||
summary = "IMO 기반 선박제원정보 조회",
|
||||
description = "IMO 기반 선박제원정보 조회"
|
||||
)
|
||||
@GetMapping("/GetShipDataByIHSLRorIMO")
|
||||
public ResponseEntity<JsonNode> getGetShipDataByIHSLRorIMOData(@Parameter(description = "", example = "9876543")
|
||||
@RequestParam(required = true) String ihslrOrImo) {
|
||||
return executeRaw(() -> getShipDataByIHSLRorIMOService.getGetShipDataByIHSLRorIMOData(ihslrOrImo));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package com.snp.batch.jobs.web.ship.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.snp.batch.common.web.service.BaseBypassService;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
/**
|
||||
* IMO 기반 선박제원정보 조회 bypass 서비스
|
||||
* 외부 Maritime API에서 데이터를 실시간 조회하여 JSON을 그대로 반환
|
||||
*/
|
||||
@Service
|
||||
public class GetShipDataByIHSLRorIMOService extends BaseBypassService<JsonNode> {
|
||||
|
||||
public GetShipDataByIHSLRorIMOService(
|
||||
@Qualifier("maritimeApiWebClient") WebClient webClient) {
|
||||
super(webClient, "/MaritimeWCF/APSShipService.svc/RESTFul/GetShipDataByIHSLRorIMO", "IMO 기반 선박제원정보 조회",
|
||||
new ParameterizedTypeReference<>() {},
|
||||
new ParameterizedTypeReference<>() {});
|
||||
}
|
||||
|
||||
/**
|
||||
* IMO 기반 선박제원정보 조회 데이터를 조회합니다.
|
||||
*/
|
||||
public JsonNode getGetShipDataByIHSLRorIMOData(String ihslrOrImo) {
|
||||
return fetchRawGet(uri -> uri.path(getApiPath())
|
||||
.queryParam("ihslrOrImo", ihslrOrImo)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
불러오는 중...
Reference in New Issue
Block a user