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 += '&';
|