Browse Source

feat: swagger example, config 작업

pull/2/head
박재우 8 months ago
parent
commit
59b6625881
  1. 17
      app/kac-app/src/main/java/kr/co/palnet/kac/app/config/SwaggerConfig.java
  2. 7
      app/kac-app/src/main/resources/application-swagger.yml
  3. 1
      app/kac-app/src/main/resources/application.yml
  4. 1
      web/api-com/build.gradle
  5. 56
      web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/controller/ComCodeController.java
  6. 12
      web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/FormCodeGroupRQ.java
  7. 6
      web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/FormCodeLangRQ.java
  8. 7
      web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/FormCodeRQ.java
  9. 5
      web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/SearchCodeAllRQ.java
  10. 6
      web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/SearchCodeRQ.java

17
app/kac-app/src/main/java/kr/co/palnet/kac/app/config/SwaggerConfig.java

@ -7,6 +7,7 @@ import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import lombok.extern.slf4j.Slf4j;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -90,8 +91,22 @@ public class SwaggerConfig {
.version("1.0")
.description("PAV API")
);
}
@Bean
public GroupedOpenApi commonCode() {
return GroupedOpenApi.builder()
.group("공통-코드")
.pathsToMatch("/v1/com/code/**")
.build();
}
@Bean
public GroupedOpenApi selectAll() {
return GroupedOpenApi.builder()
.group("All")
.pathsToMatch("/**")
.build();
}
}

7
app/kac-app/src/main/resources/application-swagger.yml

@ -3,9 +3,6 @@ springdoc:
path: /api-docs
groups:
enabled: true
# 해당 패턴에 매칭되는 controller만 swagger-ui에 노출한다.
# paths-to-match:
# - /api/**
# paths-to-exclude:
# - /api/v1/utm
# - /api/bas/flight/**
@ -17,7 +14,7 @@ springdoc:
path: /index.html
display-request-duration: true
groups-order: DESC
groups-order: ASC
# 태그 정렬 순서.
# alpha: 알파벳 순 정렬
@ -27,7 +24,7 @@ springdoc:
# 컨트롤러 정렬 순서.
# method는 delete - get - patch - post - put 순으로 정렬된다.
# alpha를 사용해 알파벳 순으로 정렬할 수 있다.
operations-sorter: method
operations-sorter: alpha
# Spring Actuator의 endpoint까지 보여줄 것인지?
show-actuator: false

1
app/kac-app/src/main/resources/application.yml

@ -2,6 +2,7 @@ spring:
profiles:
include:
- database
- swagger
threads:
virtual:
enabled: true

1
web/api-com/build.gradle

@ -4,6 +4,7 @@ dependencies {
implementation("$boot:spring-boot-starter-web")
implementation("org.springframework.data:spring-data-commons")
compileOnly 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
implementation project(":data-com")
}

56
web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/controller/ComCodeController.java

@ -1,13 +1,35 @@
package kr.co.palnet.kac.api.v1.com.code.controller;
import kr.co.palnet.kac.api.v1.com.code.model.*;
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.co.palnet.kac.api.v1.com.code.model.CodeDTO;
import kr.co.palnet.kac.api.v1.com.code.model.CodeGroupDTO;
import kr.co.palnet.kac.api.v1.com.code.model.CodeGroupRS;
import kr.co.palnet.kac.api.v1.com.code.model.CodeLangDTO;
import kr.co.palnet.kac.api.v1.com.code.model.CodeRS;
import kr.co.palnet.kac.api.v1.com.code.model.FormCodeGroupRQ;
import kr.co.palnet.kac.api.v1.com.code.model.FormCodeLangRQ;
import kr.co.palnet.kac.api.v1.com.code.model.FormCodeRQ;
import kr.co.palnet.kac.api.v1.com.code.model.SearchCodeAllRQ;
import kr.co.palnet.kac.api.v1.com.code.model.SearchCodeRQ;
import kr.co.palnet.kac.api.v1.com.code.service.ComCodeService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Tag(name = "공통 - 코드", description = "코드 관련 API")
@RequiredArgsConstructor
@RequestMapping("/v1/com/code")
@RestController
@ -18,6 +40,7 @@ public class ComCodeController {
/* 사용 용도 */
// 전체 코드 조회 - 코드그룹-코드-언어
@GetMapping("/all")
@Operation(summary = "전체 코드 조회", description = "전체 코드를 조회합니다.")
public ResponseEntity<List<CodeGroupRS>> getAllGroup(SearchCodeAllRQ rq) {
List<CodeGroupRS> allCode = comCodeService.getAllGroup(rq);
return ResponseEntity.ok(allCode);
@ -25,6 +48,7 @@ public class ComCodeController {
// 그룹 목록 조회 - 코드 그룹만
@GetMapping("/group")
@Operation(summary = "코드 그룹 조회", description = "코드 그룹을 조회합니다.")
public ResponseEntity<List<CodeGroupRS>> getAllGroupCode() {
List<CodeGroupRS> codeGroupRSList = comCodeService.getAllGroupCode();
return ResponseEntity.ok(codeGroupRSList);
@ -32,6 +56,7 @@ public class ComCodeController {
// 코드 목록 조회 - 코드 - 언어
@GetMapping("/code")
@Operation(summary = "코드 목록 조회", description = "코드 목록을 조회합니다.")
public ResponseEntity<List<CodeRS>> getAllCodeByGroup(SearchCodeRQ rq) {
List<CodeRS> list = comCodeService.getAllCodeByGroup(rq);
return ResponseEntity.ok(list);
@ -40,6 +65,7 @@ public class ComCodeController {
/* 관리 용도 */
// 코드 그룹 등록
@PostMapping("/group")
@Operation(summary = "코드 그룹 등록", description = "코드 그룹을 등록합니다.")
public ResponseEntity<CodeGroupDTO> createCodeGroup(@RequestBody FormCodeGroupRQ rq) {
CodeGroupDTO codeGroup = comCodeService.createCodeGroup(rq);
return ResponseEntity.ok(codeGroup);
@ -47,6 +73,7 @@ public class ComCodeController {
// 코드 등록
@PostMapping("/code")
@Operation(summary = "코드 등록", description = "코드를 등록합니다.")
public ResponseEntity<CodeDTO> createCode(@RequestBody FormCodeRQ rq) {
CodeDTO code = comCodeService.createCode(rq);
return ResponseEntity.ok(code);
@ -54,6 +81,7 @@ public class ComCodeController {
// 언어 등록
@PostMapping("/lang")
@Operation(summary = "언어 등록", description = "언어를 등록합니다.")
public ResponseEntity<CodeLangDTO> createCodeLang(@RequestBody FormCodeLangRQ rq) {
CodeLangDTO lang = comCodeService.createCodeLang(rq);
return ResponseEntity.ok(lang);
@ -61,6 +89,7 @@ public class ComCodeController {
// 코드 그룹 수정
@PutMapping("/group")
@Operation(summary = "코드 그룹 수정", description = "코드 그룹을 수정합니다.")
public ResponseEntity<CodeGroupDTO> updateCodeGroup(@RequestBody FormCodeGroupRQ rq) {
CodeGroupDTO codeGroup = comCodeService.updateCodeGroup(rq);
return ResponseEntity.ok(codeGroup);
@ -68,6 +97,7 @@ public class ComCodeController {
// 코드 수정
@PutMapping("/code")
@Operation(summary = "코드 수정", description = "코드를 수정합니다.")
public ResponseEntity<CodeDTO> updateCode(@RequestBody FormCodeRQ rq) {
CodeDTO code = comCodeService.updateCode(rq);
return ResponseEntity.ok(code);
@ -75,6 +105,7 @@ public class ComCodeController {
// 언어 수정
@PutMapping("/lang")
@Operation(summary = "언어 수정", description = "언어를 수정합니다.")
public ResponseEntity<CodeLangDTO> updateCodeLang(@RequestBody FormCodeLangRQ rq) {
CodeLangDTO lang = comCodeService.updateCodeLang(rq);
return ResponseEntity.ok(lang);
@ -82,24 +113,27 @@ public class ComCodeController {
// 코드 그룹 삭제
@DeleteMapping("/group")
public void deleteCodeGroup(@RequestParam("groupCd") String groupCd) {
@Operation(summary = "코드 그룹 삭제", description = "코드 그룹을 삭제합니다.")
public void deleteCodeGroup(@Parameter(name="groupCd", description = "삭제할 그룹 코드", in = ParameterIn.QUERY, example = "NEW_GROUP001") @RequestParam("groupCd") String groupCd) {
comCodeService.deleteCodeGroup(groupCd);
}
// 코드 삭제
@DeleteMapping("/code")
@Operation(summary = "코드 삭제", description = "코드를 삭제합니다.")
public void deleteCode(
@RequestParam("groupCd") String groupCd,
@RequestParam("cdId") String cdId) {
@Parameter(name="groupCd", description = "그룹 코드", in = ParameterIn.QUERY, example = "NEW_GROUP001") @RequestParam("groupCd") String groupCd,
@Parameter(name="cdId", description = "삭제할 코드 아이디", in = ParameterIn.QUERY, example = "NEW_CODE001") @RequestParam("cdId") String cdId) {
comCodeService.deleteCode(groupCd, cdId);
}
// 언어 삭제
@DeleteMapping("/lang")
@Operation(summary = "언어 삭제", description = "언어를 삭제합니다.")
public void deleteLang(
@RequestParam("groupCd") String groupCd,
@RequestParam("cdId") String cdId,
@RequestParam("langDivCd") String langDivCd) {
@Parameter(name="groupCd", description = " 그룹 코드", in = ParameterIn.QUERY, example = "NEW_GROUP001") @RequestParam("groupCd") String groupCd,
@Parameter(name="cdId", description = "코드 아이디", in = ParameterIn.QUERY, example = "NEW_CODE001") @RequestParam("cdId") String cdId,
@Parameter(name="langDivCd", description = "삭제할 언어 코드", in = ParameterIn.QUERY, example = "ko_KR") @RequestParam("langDivCd") String langDivCd) {
comCodeService.deleteLang(groupCd, cdId, langDivCd);
}

12
web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/FormCodeGroupRQ.java

@ -1,5 +1,6 @@
package kr.co.palnet.kac.api.v1.com.code.model;
import io.swagger.v3.oas.annotations.media.Schema;
import kr.co.palnet.kac.data.com.domain.ComCdGroupBas;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -12,13 +13,16 @@ import lombok.NoArgsConstructor;
@Builder
public class FormCodeGroupRQ {
// 그룹코드
@Schema(description = "그룹 코드", example = "NEW_GROUP001")
private String groupCd;
// 사이트코드
@Schema(description = "사이트 코드", example = "KAC")
private String siteCd;
// 그룹코드명
@Schema(description = "그룹코드명", example = "신규그룹001")
private String groupCdNm;
// 비고
@Schema(description = "비고", example = "비고....")
private String rm;
public ComCdGroupBas toEntity() {

6
web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/FormCodeLangRQ.java

@ -1,5 +1,6 @@
package kr.co.palnet.kac.api.v1.com.code.model;
import io.swagger.v3.oas.annotations.media.Schema;
import kr.co.palnet.kac.data.com.domain.ComCdLangCtg;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -13,18 +14,23 @@ import lombok.NoArgsConstructor;
public class FormCodeLangRQ {
// 그룹코드
@Schema(description = "그룹 코드", example = "NEW_GROUP001")
private String groupCd;
// 코드ID
@Schema(description = "코드 ID", example = "NEW_CODE001")
private String cdId;
// 언어구분코드
@Schema(description = "언어 구분 코드", example = "ko_KR")
private String langDivCd;
// 코드명
@Schema(description = "코드명", example = "신규코드001")
private String cdNm;
// 비고
@Schema(description = "비고", example = "비고....")
private String rm;
public ComCdLangCtg toEntity() {

7
web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/FormCodeRQ.java

@ -1,5 +1,6 @@
package kr.co.palnet.kac.api.v1.com.code.model;
import io.swagger.v3.oas.annotations.media.Schema;
import kr.co.palnet.kac.data.com.domain.ComCdBas;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -13,21 +14,27 @@ import lombok.NoArgsConstructor;
public class FormCodeRQ {
// 코드ID, 그룹코드
@Schema(description = "그룹 코드", example = "NEW_GROUP001")
private String groupCd;
// 코드ID
@Schema(description = "코드 ID", example = "NEW_CODE001")
private String cdId;
// 상위코드
@Schema(description = "상위 코드", example = "null", hidden = true)
private String upperCd;
// 정렬순서
@Schema(description = "정렬 순서", example = "0")
private Integer sortOrdr;
// 추가정보값
@Schema(description = "추가 정보값", example = "추가!!")
private String addInfoValue;
// 사용여부
@Schema(description = "사용 여부", example = "Y")
private String useYn;
public ComCdBas toEntity() {

5
web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/SearchCodeAllRQ.java

@ -1,5 +1,6 @@
package kr.co.palnet.kac.api.v1.com.code.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -10,6 +11,10 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@Builder
public class SearchCodeAllRQ {
@Schema(description = "사이트 코드", example = "KAC")
private String siteCd;
@Schema(description = "언어 코드", example = "ko_KR")
private String langDivCd;
}

6
web/api-com/src/main/java/kr/co/palnet/kac/api/v1/com/code/model/SearchCodeRQ.java

@ -1,5 +1,6 @@
package kr.co.palnet.kac.api.v1.com.code.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -10,6 +11,11 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@Builder
public class SearchCodeRQ {
@Schema(description = "그룹 코드", example = "TEST1")
private String groupCd;
@Schema(description = "언어 코드", example = "ko_KR")
private String langDivCd;
}

Loading…
Cancel
Save