From 300a6b420cb5d1ba1725b83e70ca117dc4947040 Mon Sep 17 00:00:00 2001 From: hsoh Date: Sun, 11 Jul 2021 02:05:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=91=EB=8B=B5=EC=A7=80=EC=97=B0=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20/=20=EC=9D=91=EB=8B=B5=20status=20code=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 1 - .../eactive/httpmockserver/ApiController.java | 32 ++++++++++++++++-- .../com/eactive/httpmockserver/ApiInfo.java | 27 ++++++++++++++- src/main/resources/static/favicon.ico | Bin 0 -> 1150 bytes .../templates/page/add-edit-api.html | 24 +++++++++++++ 5 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/static/favicon.ico diff --git a/build.gradle b/build.gradle index e84b386..f7dca1e 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,6 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework.boot:spring-boot-starter-web-services' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' diff --git a/src/main/java/com/eactive/httpmockserver/ApiController.java b/src/main/java/com/eactive/httpmockserver/ApiController.java index 842c528..e52b665 100644 --- a/src/main/java/com/eactive/httpmockserver/ApiController.java +++ b/src/main/java/com/eactive/httpmockserver/ApiController.java @@ -30,7 +30,8 @@ public class ApiController { private ApiService apiService; @SuppressWarnings("deprecation") - @RequestMapping(value = "/mock-api/**") + //@RequestMapping(value = "/mock-api/**") + @RequestMapping(value = "/{_:^(?!plugins|dist|favicon.ico).*$}/**") public ResponseEntity mockApi(HttpEntity httpEntity, HttpServletRequest request, HttpServletResponse response) { System.out.println("=================================================="); @@ -67,7 +68,25 @@ public class ApiController { String.format("Method(%s) not allowed", request.getMethod())); } } - + + // sleep + if(api.getSleepSeconds() != null) { + int sleepSeconds = api.getSleepSeconds().intValue(); + if (sleepSeconds > 0) { + try { + System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); + System.out.println(String.format("Start Sleep %d Seconds.", sleepSeconds)); + System.out.println("..."); + Thread.sleep(sleepSeconds * 1000); + System.out.println("......"); + System.out.println(String.format("Finished Sleep %d Seconds.", sleepSeconds)); + System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + HttpHeaders responseHeaders = new HttpHeaders(); if (StringUtils.isNotBlank(api.getResponseContentType())) { responseHeaders.setContentType(MediaType.parseMediaType(api.getResponseContentType())); @@ -76,8 +95,15 @@ public class ApiController { } assignResponseHeaders(responseHeaders, api.getResponseHeaders()); + + // status code + int responseStatusCode = 200; + if (api.getResponseStatusCode() != null) { + responseStatusCode = api.getResponseStatusCode().intValue(); + System.out.println("Response Status Code=" + responseStatusCode); + } - return new ResponseEntity(assignResponseBody(api), responseHeaders, HttpStatus.OK); + return new ResponseEntity(assignResponseBody(api), responseHeaders, responseStatusCode); } private String assignServiceValue(HttpEntity httpEntity, HttpServletRequest request, String url) { diff --git a/src/main/java/com/eactive/httpmockserver/ApiInfo.java b/src/main/java/com/eactive/httpmockserver/ApiInfo.java index b401613..46e5474 100644 --- a/src/main/java/com/eactive/httpmockserver/ApiInfo.java +++ b/src/main/java/com/eactive/httpmockserver/ApiInfo.java @@ -10,7 +10,9 @@ import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.Table; import javax.persistence.UniqueConstraint; +import javax.validation.constraints.Digits; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Positive; @SuppressWarnings("serial") @Entity @@ -46,6 +48,12 @@ public class ApiInfo implements Serializable { @Column(length = 5000) private String responseHeaders; + @Digits(fraction = 0, integer = 3) + private Integer responseStatusCode; + + @Positive + private Integer sleepSeconds; + @Column(length = 5000) private String responseBody1; @@ -116,6 +124,22 @@ public class ApiInfo implements Serializable { this.responseHeaders = responseHeaders; } + public Integer getResponseStatusCode() { + return responseStatusCode; + } + + public void setResponseStatusCode(Integer responseStatusCode) { + this.responseStatusCode = responseStatusCode; + } + + public Integer getSleepSeconds() { + return sleepSeconds; + } + + public void setSleepSeconds(Integer sleepSeconds) { + this.sleepSeconds = sleepSeconds; + } + public String getResponseBody1() { return responseBody1; } @@ -136,7 +160,8 @@ public class ApiInfo implements Serializable { public String toString() { return "ApiInfo [id=" + id + ", apiGroupName=" + apiGroupName + ", apiName=" + apiName + ", url=" + url + ", serviceValue=" + serviceValue + ", method=" + method + ", responseContentType=" - + responseContentType + ", responseHeaders=" + responseHeaders + ", responseBody1=" + responseBody1 + + responseContentType + ", responseHeaders=" + responseHeaders + ", responseStatusCode=" + + responseStatusCode + ", sleepSeconds=" + sleepSeconds + ", responseBody1=" + responseBody1 + ", responseBody2=" + responseBody2 + "]"; } } diff --git a/src/main/resources/static/favicon.ico b/src/main/resources/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1380a92f12f589d04d3b8bf13688f8f06795e4d6 GIT binary patch literal 1150 zcmd6nO-NK>6o${$sSqrupdb3t(NX8m`Dq5Vj2sOnjiMkaBAZP@1SLi;B3f9ha1(7Z zS3(i?voV4|Xpt1{LTC}WXut@isQJD-lckk;dv10skX%L#?>*<9@4WB#o;h$u41R96 z@bt)Wm&h6s@dHX!=IaCz&K|Fr$B*~_;IS=XE(urZXpL8=gXOAYOH3#349*yPQn|vG zq`9o7QX7e&{;Sh~N1d(Sq}~7ve2P}Qrr5`x|RbS3}%fpyMl5 zZ>u&c%ZAMlRjAZbc`tamz}YDAX3VEAMt!=I=-IF;D?1u~>-fvmn8UYYpj-_!Z#9eS zBl;fRW~t4glVQHTNR__AtUJ$iPZm5K9WaK5?n=n3Pjm0Iqd`6uuGHzxe%)2$Rj;_; z*8fUfFMQB(Cw}>*QK}~3T}OM8vtjZM&NJWz+>_Ks@aMBEOYkLiVO<=oP^ajB z?P$=OhnHcNkM>^JWs`l5hc-Oi27StY8izdL8(JH`(B?R(LgL&JjinL7uV>@(!rf1yYJ8^rhDZ83;u9#nk;C10?kiLiLJc54>KdH>iS%bWn+5*0#V@LKV?FaIO z{KrM`iqZ%3u9jqOHTfZQhnfHApZ$yFoyVr+Qtz}R>rFRzd*cDU_HbL?Sd8;8&RCz= ckRCn{WuS!IcJ&kINk_mqm;rXH#f!uH4tL@#QUCw| literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/page/add-edit-api.html b/src/main/resources/templates/page/add-edit-api.html index 95f4d11..9977941 100644 --- a/src/main/resources/templates/page/add-edit-api.html +++ b/src/main/resources/templates/page/add-edit-api.html @@ -129,6 +129,30 @@ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+