API 목록, 상세 페이지 적용
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.eactive.apim.portal.apps.apis.controller;
|
package com.eactive.apim.portal.apps.apis.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.eactive.apim.portal.apps.apis.dto.ApiSearchData;
|
||||||
import com.eactive.apim.portal.apps.apis.dto.ApiSpecInfoDto;
|
import com.eactive.apim.portal.apps.apis.dto.ApiSpecInfoDto;
|
||||||
import com.eactive.apim.portal.apps.apis.service.ApiSearchFacade;
|
import com.eactive.apim.portal.apps.apis.service.ApiSearchFacade;
|
||||||
import com.eactive.apim.portal.apps.apis.service.ApiService;
|
import com.eactive.apim.portal.apps.apis.service.ApiService;
|
||||||
@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||||||
@RequestMapping("/apis")
|
@RequestMapping("/apis")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class ApiController {
|
public class ApiController {
|
||||||
|
|
||||||
private static final String NOT_FOUND_MESSAGE = "찾을 수 없습니다.";
|
private static final String NOT_FOUND_MESSAGE = "찾을 수 없습니다.";
|
||||||
private final ApiService apiService;
|
private final ApiService apiService;
|
||||||
private final ApiServiceService apiServiceService;
|
private final ApiServiceService apiServiceService;
|
||||||
@@ -33,15 +35,20 @@ public class ApiController {
|
|||||||
|
|
||||||
@GetMapping("/detail")
|
@GetMapping("/detail")
|
||||||
public String apidetail(@RequestParam(value = "id", required = false) String id, ModelMap model) {
|
public String apidetail(@RequestParam(value = "id", required = false) String id, ModelMap model) {
|
||||||
if( id ==null) {
|
if (id == null) {
|
||||||
return "redirect:/apis/common";
|
return "redirect:/apis/common";
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiSpecInfoDto api = apiService.selectDetail(id);
|
ApiSpecInfoDto api = apiService.selectDetail(id);
|
||||||
if(api==null){
|
if (api == null) {
|
||||||
throw new NotFoundException(NOT_FOUND_MESSAGE);
|
throw new NotFoundException(NOT_FOUND_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<String, Object> searchResult = apiSearchFacade.searchApis(new ApiGroupSearch());
|
||||||
|
|
||||||
model.addAttribute("apiSpecInfo", api);
|
model.addAttribute("apiSpecInfo", api);
|
||||||
|
model.addAttribute("totalApiCount", searchResult.get("totalApiCount"));
|
||||||
|
model.addAttribute("services", searchResult.get("services"));
|
||||||
return "apps/apis/mainApiDetail";
|
return "apps/apis/mainApiDetail";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +61,7 @@ public class ApiController {
|
|||||||
model.addAttribute("apis", searchResult.get("apis"));
|
model.addAttribute("apis", searchResult.get("apis"));
|
||||||
model.addAttribute("totalApiCount", searchResult.get("totalApiCount"));
|
model.addAttribute("totalApiCount", searchResult.get("totalApiCount"));
|
||||||
model.addAttribute("selectedApiCount", searchResult.get("selectedApiCount"));
|
model.addAttribute("selectedApiCount", searchResult.get("selectedApiCount"));
|
||||||
model.addAttribute("selected", search.getGroupIds().size() >0 ? search.getGroupIds().get(0) : "-1");
|
model.addAttribute("selected", search.getGroupIds().size() > 0 ? search.getGroupIds().get(0) : "-1");
|
||||||
|
|
||||||
return "apps/apis/mainApiList";
|
return "apps/apis/mainApiList";
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-6
@@ -1,7 +1,11 @@
|
|||||||
package com.eactive.apim.portal.apps.apis.controller;
|
package com.eactive.apim.portal.apps.apis.controller;
|
||||||
|
|
||||||
|
import com.eactive.apim.portal.apispec.entity.ApiSpecInfo;
|
||||||
|
import com.eactive.apim.portal.apispec.service.ApiSpecInfoService;
|
||||||
|
import com.eactive.apim.portal.apps.apis.service.ApiService;
|
||||||
import com.eactive.apim.portal.apps.apiservice.service.ApiSpecService;
|
import com.eactive.apim.portal.apps.apiservice.service.ApiSpecService;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Optional;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
@@ -10,6 +14,7 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.util.FileCopyUtils;
|
import org.springframework.util.FileCopyUtils;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@@ -21,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
public class TestbedSpecController {
|
public class TestbedSpecController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ApiSpecService apiSpecService;
|
private ApiSpecInfoService apiSpecInfoService;
|
||||||
|
|
||||||
private static final String DEFAULT_TOKEN_API_ID = "default-token-api-spec";
|
private static final String DEFAULT_TOKEN_API_ID = "default-token-api-spec";
|
||||||
private static final String DEFAULT_SPEC_PATH = "swagger/default-token-api-spec.json";
|
private static final String DEFAULT_SPEC_PATH = "swagger/default-token-api-spec.json";
|
||||||
@@ -40,12 +45,12 @@ public class TestbedSpecController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String testbedSpec = apiSpecService.generateApiServiceTestbedSpec(id);
|
Optional<ApiSpecInfo> spec = apiSpecInfoService.findById(id);
|
||||||
|
|
||||||
if (testbedSpec.isEmpty()) {
|
if (!spec.isPresent()) {
|
||||||
return ResponseEntity.notFound().build();
|
StringUtils.hasText(spec.get().getTestbedSpec());
|
||||||
} else {
|
|
||||||
return ResponseEntity.ok().body(testbedSpec);
|
|
||||||
}
|
}
|
||||||
|
return ResponseEntity.ok().body(spec.get().getTestbedSpec());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,4 +44,6 @@ public class ApiSpecInfoDto {
|
|||||||
private String displayOrg;
|
private String displayOrg;
|
||||||
|
|
||||||
private String displayRoleCode;
|
private String displayRoleCode;
|
||||||
|
|
||||||
|
private String apiGroupName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,11 @@ public class ApiSearchFacadeImpl implements ApiSearchFacade {
|
|||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
filteredApis.forEach(api -> {
|
filteredApis.forEach(api -> {
|
||||||
api.setMainIcon(apiData.getServicesByApiId().get(api.getApiId()).getMainIcon());
|
ApiServiceDTO service = apiData.getServicesByApiId().get(api.getApiId());
|
||||||
|
if (service != null) {
|
||||||
|
api.setMainIcon(service.getMainIcon());
|
||||||
|
api.setApiGroupName(service.getGroupName());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
List<ApiServiceDTO> servicesToReturn = apiData.getAllServices().stream()
|
List<ApiServiceDTO> servicesToReturn = apiData.getAllServices().stream()
|
||||||
@@ -143,6 +147,7 @@ public class ApiSearchFacadeImpl implements ApiSearchFacade {
|
|||||||
result.put("services", servicesToReturn);
|
result.put("services", servicesToReturn);
|
||||||
result.put("apis", sortedApis);
|
result.put("apis", sortedApis);
|
||||||
result.put("selectedApiCount", sortedApis.size());
|
result.put("selectedApiCount", sortedApis.size());
|
||||||
|
result.put("totalApiCount", apiData.getApiSpecsById().size());
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -51,9 +52,12 @@ public class MainApiFacade {
|
|||||||
|
|
||||||
public List<String> getHashTags() {
|
public List<String> getHashTags() {
|
||||||
Map<String, String> property = portalPropertyService.getPortalPropertiesAsMap(PORTAL_PROPERTY);
|
Map<String, String> property = portalPropertyService.getPortalPropertiesAsMap(PORTAL_PROPERTY);
|
||||||
String hashTags = property.getOrDefault("main.keyword.list", "#인증, #대출, #예금");
|
String hashTags = property.getOrDefault("main.keyword.list", "#계좌조회, #송금API, #실시간결제, #오픈뱅킹");
|
||||||
//split with , and return as a list
|
//split with , and clean each tag (remove # and trim)
|
||||||
return Arrays.asList(hashTags.split(","));
|
return Arrays.stream(hashTags.split(","))
|
||||||
|
.map(tag -> tag.trim().replaceFirst("^#", ""))
|
||||||
|
.filter(tag -> !tag.isEmpty())
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ApiSpecInfoDto> getOpenApis(List<String> apiIds) {
|
public List<ApiSpecInfoDto> getOpenApis(List<String> apiIds) {
|
||||||
|
|||||||
Reference in New Issue
Block a user