|
|
@ -1,16 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
### API 가이드
|
|
|
|
### API 가이드
|
|
|
|
|
|
|
|
|
|
|
|
[카카오페이 문서발송 단건](./document/카카오페이내문서함_1.문서발송(단건).pdf)
|
|
|
|
[카카오페이 문서발송 단건](./document/카카오페이내문서함_1.문서발송(단건).pdf)
|
|
|
|
[카카오페이 문서발송 대량](./document/카카오페이내문서함_1.문서발송(대량).pdf)
|
|
|
|
[카카오페이 문서발송 대량](./document/카카오페이내문서함_1.문서발송(대량).pdf)
|
|
|
|
[카카오페이 문서발송 네트워크가이드](./document/카카오페이내문서함_1.네트워크가이드.pdf)
|
|
|
|
[카카오페이 문서발송 네트워크가이드](./document/카카오페이내문서함_1.네트워크가이드.pdf)
|
|
|
|
|
|
|
|
|
|
|
|
### swagger
|
|
|
|
### swagger
|
|
|
|
|
|
|
|
|
|
|
|
[API URL](http://localhost:8081/swagger-ui.html)
|
|
|
|
[API URL](http://localhost:8081/swagger-ui.html)
|
|
|
|
[Front URL](http://localhost:8080/swagger-ui.html)
|
|
|
|
[Front URL](http://localhost:8080/swagger-ui.html)
|
|
|
|
[Front test page](http://localhost:8080/api/kakaopay/test)
|
|
|
|
[Front test page](http://localhost:8080/api/kakaopay/test)
|
|
|
|
|
|
|
|
|
|
|
|
### API 결과 수신
|
|
|
|
### API 결과 수신
|
|
|
|
|
|
|
|
|
|
|
|
* 정상 수신
|
|
|
|
* 정상 수신
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
```java
|
|
|
|
public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
private static final String FAIL_STATUS = "fail";
|
|
|
|
private static final String FAIL_STATUS = "fail";
|
|
|
@ -36,7 +39,9 @@ public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
private int count;
|
|
|
|
private int count;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
* 정상 수신
|
|
|
|
* 정상 수신
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"success": true,
|
|
|
|
"success": true,
|
|
|
@ -58,7 +63,9 @@ public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
"paginationInfo": null
|
|
|
|
"paginationInfo": null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
* 에러 수신
|
|
|
|
* 에러 수신
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"success": false,
|
|
|
|
"success": false,
|
|
|
@ -70,8 +77,10 @@ public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
"paginationInfo": null
|
|
|
|
"paginationInfo": null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
* API 호출 결과가 서버등(네트웍장애)의 장애인 경우를 제외 하고
|
|
|
|
* API 호출 결과가 서버등(네트웍장애)의 장애인 경우를 제외 하고
|
|
|
|
예외로 return 되는 경우는 없다(발생시 공통팀에 반드시 알려 줄 것)
|
|
|
|
예외로 return 되는 경우는 없다(발생시 공통팀에 반드시 알려 줄 것)
|
|
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
```js
|
|
|
|
$.ajax({
|
|
|
|
$.ajax({
|
|
|
|
url: url,
|
|
|
|
url: url,
|
|
|
@ -103,11 +112,14 @@ public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### API(Restful call) validation
|
|
|
|
### API(Restful call) validation
|
|
|
|
|
|
|
|
|
|
|
|
* Controller 단에서 @Validated 사용으로 처리 가능
|
|
|
|
* Controller 단에서 @Validated 사용으로 처리 가능
|
|
|
|
* But, 이경우 API 로그를 남기기 위해 Service 단에서 체크 하도록 컨트롤러 단에서는 유효성 체크 skip
|
|
|
|
* But, 이경우 API 로그를 남기기 위해 Service 단에서 체크 하도록 컨트롤러 단에서는 유효성 체크 skip
|
|
|
|
|
|
|
|
|
|
|
|
### spring validation
|
|
|
|
### spring validation
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
```text
|
|
|
|
@Valid는 Java, @Validated는 Spring에서 지원하는 어노테이션
|
|
|
|
@Valid는 Java, @Validated는 Spring에서 지원하는 어노테이션
|
|
|
|
@Validated는 @Valid의 기능을 포함하고, 유효성을 검토할 그룹을 지정할 수 있는 기능이 추가됨
|
|
|
|
@Validated는 @Valid의 기능을 포함하고, 유효성을 검토할 그룹을 지정할 수 있는 기능이 추가됨
|
|
|
@ -138,7 +150,9 @@ public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
@AssertFalse // false 여부, null은 체크하지 않습니다.
|
|
|
|
@AssertFalse // false 여부, null은 체크하지 않습니다.
|
|
|
|
@AssertTrue // true 여부, null은 체크하지 않습니다.
|
|
|
|
@AssertTrue // true 여부, null은 체크하지 않습니다.
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### intellij devtools 활성
|
|
|
|
### intellij devtools 활성
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
```text
|
|
|
|
1. IntelliJ - Preferencs…
|
|
|
|
1. IntelliJ - Preferencs…
|
|
|
|
2. 컴파일러 - build project automatically(프로젝트 자동 빌드) 체크
|
|
|
|
2. 컴파일러 - build project automatically(프로젝트 자동 빌드) 체크
|
|
|
@ -150,7 +164,9 @@ public class ApiResponseDTO<T> implements Serializable {
|
|
|
|
Modfy Options > On Update Action > Update Resources
|
|
|
|
Modfy Options > On Update Action > Update Resources
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### ens-api 배포 및 run : profile에 따라 local|dev|prod
|
|
|
|
### ens-api 배포 및 run : profile에 따라 local|dev|prod
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
```shell
|
|
|
|
# jdk : azul-17.0.1
|
|
|
|
# jdk : azul-17.0.1
|
|
|
|
# 프로젝트 root 폴더로 이동 : ens-parent
|
|
|
|
# 프로젝트 root 폴더로 이동 : ens-parent
|
|
|
@ -163,9 +179,11 @@ $ c:\tools\java\azul-17.0.1\java -jar -Dspring.profiles.active=local .\ens-api.j
|
|
|
|
# mvn 명령어 설명
|
|
|
|
# mvn 명령어 설명
|
|
|
|
# -pl [모듈명] : 모듈명의 프로젝트만 빌드
|
|
|
|
# -pl [모듈명] : 모듈명의 프로젝트만 빌드
|
|
|
|
# -am : 의존성 있는 프로젝트 함께 빌드 - C가 A를 디펜던시로 가지고 있으며 C를 빌드하면 A -> C 순으로 빌드
|
|
|
|
# -am : 의존성 있는 프로젝트 함께 빌드 - C가 A를 디펜던시로 가지고 있으며 C를 빌드하면 A -> C 순으로 빌드
|
|
|
|
$ mvnw clean package -pl ens-api -am -P local
|
|
|
|
$ mvnw clean package -pl mens-api -am -P local
|
|
|
|
# -amd : 의존성 있는 타 프로젝트 빌드 - C가 A를 디펜던시로 가지고 있는 경우 A를 빌드 하면 A -> C 순으로 빌드
|
|
|
|
# -amd : 의존성 있는 타 프로젝트 빌드 - C가 A를 디펜던시로 가지고 있는 경우 A를 빌드 하면 A -> C 순으로 빌드
|
|
|
|
$ mvnw clean package -pl egov-core -amd -P local
|
|
|
|
$ mvnw clean package -pl egov-core -amd -P local
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 스프링 배치 DB schema
|
|
|
|
### 스프링 배치 DB schema
|
|
|
|
|
|
|
|
|
|
|
|
[mysql DDL 스크립트](./document/batch-schema-mysql.sql)
|
|
|
|
[mysql DDL 스크립트](./document/batch-schema-mysql.sql)
|
|
|
|