From b23347fc28f6ef370f3770c12bbfa4cb21634853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=98=84=EC=84=B1=ED=95=84?= Date: Tue, 9 May 2023 20:21:51 +0900 Subject: [PATCH] =?UTF-8?q?query,=20header=20enabled=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/MockApiController.java | 1 - .../client/dto/ApiHeaderDTO.java | 10 ++++++ .../client/service/NettyApiClient.java | 7 ++-- .../resources/templates/page/apiTester.html | 33 +++++++++++++++++-- 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/eactive/httpmockserver/api/controller/MockApiController.java b/src/main/java/com/eactive/httpmockserver/api/controller/MockApiController.java index 59f6629..96e7845 100644 --- a/src/main/java/com/eactive/httpmockserver/api/controller/MockApiController.java +++ b/src/main/java/com/eactive/httpmockserver/api/controller/MockApiController.java @@ -1,6 +1,5 @@ package com.eactive.httpmockserver.api.controller; -import com.eactive.httpmockserver.api.dto.MockConditionDTO; import com.eactive.httpmockserver.api.dto.MockRequest; import com.eactive.httpmockserver.api.entity.MockCondition; import com.eactive.httpmockserver.api.entity.MockResponse; diff --git a/src/main/java/com/eactive/httpmockserver/client/dto/ApiHeaderDTO.java b/src/main/java/com/eactive/httpmockserver/client/dto/ApiHeaderDTO.java index 82fdba3..681054c 100644 --- a/src/main/java/com/eactive/httpmockserver/client/dto/ApiHeaderDTO.java +++ b/src/main/java/com/eactive/httpmockserver/client/dto/ApiHeaderDTO.java @@ -2,9 +2,19 @@ package com.eactive.httpmockserver.client.dto; public class ApiHeaderDTO { + private boolean enabled; + private String key; private String value; + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + public String getKey() { return key; } diff --git a/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java b/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java index 8d0b948..7f7faa2 100644 --- a/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java +++ b/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java @@ -1,5 +1,6 @@ package com.eactive.httpmockserver.client.service; +import com.eactive.httpmockserver.client.dto.ApiHeaderDTO; import com.eactive.httpmockserver.client.dto.ApiRequestDTO; import com.eactive.httpmockserver.client.dto.ApiResponse; import com.eactive.httpmockserver.client.entity.Server; @@ -85,8 +86,10 @@ public class NettyApiClient { if (apiRequest.getHeaders().size() > 0) { HttpHeaders customHeaders = new DefaultHttpHeaders(); - apiRequest.getHeaders().forEach((header) -> { - customHeaders.set(header.getKey(), header.getValue()); + apiRequest.getHeaders().stream().filter(ApiHeaderDTO::isEnabled).forEach((header) -> { + if(StringUtils.isNotEmpty(header.getKey()) && StringUtils.isNotEmpty(header.getValue())){ + customHeaders.set(header.getKey(), header.getValue()); + } }); request.headers().add(customHeaders); } diff --git a/src/main/resources/templates/page/apiTester.html b/src/main/resources/templates/page/apiTester.html index e29ea13..9f35c9c 100644 --- a/src/main/resources/templates/page/apiTester.html +++ b/src/main/resources/templates/page/apiTester.html @@ -79,6 +79,7 @@ +
# 이름 @@ -96,9 +97,10 @@ + - @@ -159,6 +161,11 @@
# 이름 +
+ @@ -223,8 +230,15 @@ let template = $('#inputTemplate').children().find('tr').clone(); template.find('input[name="key"]').val(model.queryParams[i].key); template.find('input[name="value"]').val(model.queryParams[i].value); + if(model.queryParams[i].enabled){ + template.find('input[name="enabled"]').prop("checked",model.queryParams[i].enabled); + } template.find('button').attr("data-id", i); + template.find('input[name="enabled"]').on('change', function () { + model.queryParams[i].enabled = $(this).prop('checked'); + controller.buildPath(tabIdx); + }); template.find('input[name="key"]').on('focusout', function () { model.queryParams[i].key = $(this).val(); controller.buildPath(tabIdx); @@ -245,12 +259,20 @@ target.find('.request_headers').empty(); let model = apiRequests[tabIdx]; + console.log(model); for (let i = 0; i < model.headers.length; i++) { let template = $('#inputTemplate').children().find('tr').clone(); + console.log(model.headers[i]); + if(model.headers[i].enabled){ + template.find('input[name="enabled"]').prop("checked",model.headers[i].enabled); + } template.find('input[name="key"]').val(model.headers[i].key); template.find('input[name="value"]').val(model.headers[i].value); template.find('button').attr("data-id", i); + template.find('input[name="enabled"]').on('change', function () { + model.headers[i].enabled = $(this).prop('checked'); + }); template.find('input[name="key"]').on('input', function () { model.headers[i].key = $(this).val(); }); @@ -336,7 +358,7 @@ let queryParamArray = queryString.split('&'); for (let i = 0; i < queryParamArray.length; i++) { let queryParam = queryParamArray[i].split('='); - controller.addQueryParam(idx, queryParam[0], queryParam[1]); + controller.addQueryParam(idx, queryParam[0], queryParam[1]===undefined?'' : queryParam[1]); } } }); @@ -428,6 +450,7 @@ addHeader: function (tabIdx) { let model = apiRequests[tabIdx]; model.headers.push({ + enabled: true, key: '', value: '' }); @@ -436,11 +459,12 @@ removeHeader: function (tabIdx, idx) { let model = apiRequests[tabIdx]; model.headers.splice(idx, 1); - view.renderHeaders(idx); + view.renderHeaders(tabIdx); }, addQueryParam: function (tabIdx, key, value) { let model = apiRequests[tabIdx]; model.queryParams.push({ + enabled: true, key: key, value: value }); @@ -453,6 +477,9 @@ queryString += '?'; } for (let i = 0; i < model.queryParams.length; i++) { + if(!model.queryParams[i].enabled){ + continue; + } queryString += model.queryParams[i].key + '=' + model.queryParams[i].value; if (i < model.queryParams.length - 1) { queryString += '&';
+
+ +
+