Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to POST when calling API to retrieve which support request body #28342

Merged
merged 2 commits into from
Jan 25, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ static Request multiGet(MultiGetRequest multiGetRequest) throws IOException {
parameters.withRealtime(multiGetRequest.realtime());
parameters.withRefresh(multiGetRequest.refresh());
HttpEntity entity = createEntity(multiGetRequest, REQUEST_BODY_CONTENT_TYPE);
return new Request(HttpGet.METHOD_NAME, "/_mget", parameters.getParams(), entity);
return new Request(HttpPost.METHOD_NAME, "/_mget", parameters.getParams(), entity);
}

static Request index(IndexRequest indexRequest) {
Expand Down Expand Up @@ -437,17 +437,17 @@ static Request search(SearchRequest searchRequest) throws IOException {
if (searchRequest.source() != null) {
entity = createEntity(searchRequest.source(), REQUEST_BODY_CONTENT_TYPE);
}
return new Request(HttpGet.METHOD_NAME, endpoint, params.getParams(), entity);
return new Request(HttpPost.METHOD_NAME, endpoint, params.getParams(), entity);
}

static Request searchScroll(SearchScrollRequest searchScrollRequest) throws IOException {
HttpEntity entity = createEntity(searchScrollRequest, REQUEST_BODY_CONTENT_TYPE);
return new Request("GET", "/_search/scroll", Collections.emptyMap(), entity);
return new Request(HttpPost.METHOD_NAME, "/_search/scroll", Collections.emptyMap(), entity);
}

static Request clearScroll(ClearScrollRequest clearScrollRequest) throws IOException {
HttpEntity entity = createEntity(clearScrollRequest, REQUEST_BODY_CONTENT_TYPE);
return new Request("DELETE", "/_search/scroll", Collections.emptyMap(), entity);
return new Request(HttpDelete.METHOD_NAME, "/_search/scroll", Collections.emptyMap(), entity);
}

static Request multiSearch(MultiSearchRequest multiSearchRequest) throws IOException {
Expand All @@ -459,7 +459,7 @@ static Request multiSearch(MultiSearchRequest multiSearchRequest) throws IOExcep
XContent xContent = REQUEST_BODY_CONTENT_TYPE.xContent();
byte[] source = MultiSearchRequest.writeMultiLineFormat(multiSearchRequest, xContent);
HttpEntity entity = new ByteArrayEntity(source, createContentType(xContent.type()));
return new Request("GET", "/_msearch", params.getParams(), entity);
return new Request(HttpPost.METHOD_NAME, "/_msearch", params.getParams(), entity);
}

private static HttpEntity createEntity(ToXContent toXContent, XContentType xContentType) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
package org.elasticsearch.client;

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
Expand Down Expand Up @@ -135,19 +140,19 @@ public void testPing() {
assertEquals("/", request.getEndpoint());
assertEquals(0, request.getParameters().size());
assertNull(request.getEntity());
assertEquals("HEAD", request.getMethod());
assertEquals(HttpHead.METHOD_NAME, request.getMethod());
}

public void testInfo() {
Request request = Request.info();
assertEquals("/", request.getEndpoint());
assertEquals(0, request.getParameters().size());
assertNull(request.getEntity());
assertEquals("GET", request.getMethod());
assertEquals(HttpGet.METHOD_NAME, request.getMethod());
}

public void testGet() {
getAndExistsTest(Request::get, "GET");
getAndExistsTest(Request::get, HttpGet.METHOD_NAME);
}

public void testMultiGet() throws IOException {
Expand Down Expand Up @@ -197,7 +202,7 @@ public void testMultiGet() throws IOException {
}

Request request = Request.multiGet(multiGetRequest);
assertEquals("GET", request.getMethod());
assertEquals(HttpPost.METHOD_NAME, request.getMethod());
assertEquals("/_mget", request.getEndpoint());
assertEquals(expectedParams, request.getParameters());
assertToXContentBody(multiGetRequest, request.getEntity());
Expand Down Expand Up @@ -237,7 +242,7 @@ public void testDelete() {
}

public void testExists() {
getAndExistsTest(Request::exists, "HEAD");
getAndExistsTest(Request::exists, HttpHead.METHOD_NAME);
}

private static void getAndExistsTest(Function<GetRequest, Request> requestConverter, String method) {
Expand Down Expand Up @@ -314,7 +319,7 @@ public void testCreateIndex() throws IOException {
Request request = Request.createIndex(createIndexRequest);
assertEquals("/" + indexName, request.getEndpoint());
assertEquals(expectedParams, request.getParameters());
assertEquals("PUT", request.getMethod());
assertEquals(HttpPut.METHOD_NAME, request.getMethod());
assertToXContentBody(createIndexRequest, request.getEntity());
}

Expand Down Expand Up @@ -347,7 +352,7 @@ public void testPutMapping() throws IOException {
assertEquals(endpoint.toString(), request.getEndpoint());

assertEquals(expectedParams, request.getParameters());
assertEquals("PUT", request.getMethod());
assertEquals(HttpPut.METHOD_NAME, request.getMethod());
assertToXContentBody(putMappingRequest, request.getEntity());
}

Expand All @@ -364,7 +369,7 @@ public void testDeleteIndex() {
Request request = Request.deleteIndex(deleteIndexRequest);
assertEquals("/" + String.join(",", indices), request.getEndpoint());
assertEquals(expectedParams, request.getParameters());
assertEquals("DELETE", request.getMethod());
assertEquals(HttpDelete.METHOD_NAME, request.getMethod());
assertNull(request.getEntity());
}

Expand All @@ -383,7 +388,7 @@ public void testOpenIndex() {
StringJoiner endpoint = new StringJoiner("/", "/", "").add(String.join(",", indices)).add("_open");
assertThat(endpoint.toString(), equalTo(request.getEndpoint()));
assertThat(expectedParams, equalTo(request.getParameters()));
assertThat(request.getMethod(), equalTo("POST"));
assertThat(request.getMethod(), equalTo(HttpPost.METHOD_NAME));
assertThat(request.getEntity(), nullValue());
}

Expand All @@ -400,7 +405,7 @@ public void testCloseIndex() {
StringJoiner endpoint = new StringJoiner("/", "/", "").add(String.join(",", indices)).add("_close");
assertThat(endpoint.toString(), equalTo(request.getEndpoint()));
assertThat(expectedParams, equalTo(request.getParameters()));
assertThat(request.getMethod(), equalTo("POST"));
assertThat(request.getMethod(), equalTo(HttpPost.METHOD_NAME));
assertThat(request.getEntity(), nullValue());
}

Expand All @@ -414,9 +419,9 @@ public void testIndex() throws IOException {

Map<String, String> expectedParams = new HashMap<>();

String method = "POST";
String method = HttpPost.METHOD_NAME;
if (id != null) {
method = "PUT";
method = HttpPut.METHOD_NAME;
if (randomBoolean()) {
indexRequest.opType(DocWriteRequest.OpType.CREATE);
}
Expand Down Expand Up @@ -551,7 +556,7 @@ public void testUpdate() throws IOException {
Request request = Request.update(updateRequest);
assertEquals("/" + index + "/" + type + "/" + id + "/_update", request.getEndpoint());
assertEquals(expectedParams, request.getParameters());
assertEquals("POST", request.getMethod());
assertEquals(HttpPost.METHOD_NAME, request.getMethod());

HttpEntity entity = request.getEntity();
assertTrue(entity instanceof ByteArrayEntity);
Expand Down Expand Up @@ -665,7 +670,7 @@ public void testBulk() throws IOException {
Request request = Request.bulk(bulkRequest);
assertEquals("/_bulk", request.getEndpoint());
assertEquals(expectedParams, request.getParameters());
assertEquals("POST", request.getMethod());
assertEquals(HttpPost.METHOD_NAME, request.getMethod());
assertEquals(xContentType.mediaTypeWithoutParameters(), request.getEntity().getContentType().getValue());
byte[] content = new byte[(int) request.getEntity().getContentLength()];
try (InputStream inputStream = request.getEntity().getContent()) {
Expand Down Expand Up @@ -876,6 +881,7 @@ public void testSearch() throws Exception {
endpoint.add(type);
}
endpoint.add("_search");
assertEquals(HttpPost.METHOD_NAME, request.getMethod());
assertEquals(endpoint.toString(), request.getEndpoint());
assertEquals(expectedParams, request.getParameters());
assertToXContentBody(searchSourceBuilder, request.getEntity());
Expand Down Expand Up @@ -914,6 +920,7 @@ public void testMultiSearch() throws IOException {

Request request = Request.multiSearch(multiSearchRequest);
assertEquals("/_msearch", request.getEndpoint());
assertEquals(HttpPost.METHOD_NAME, request.getMethod());
assertEquals(expectedParams, request.getParameters());

List<SearchRequest> requests = new ArrayList<>();
Expand All @@ -937,7 +944,7 @@ public void testSearchScroll() throws IOException {
searchScrollRequest.scroll(randomPositiveTimeValue());
}
Request request = Request.searchScroll(searchScrollRequest);
assertEquals("GET", request.getMethod());
assertEquals(HttpPost.METHOD_NAME, request.getMethod());
assertEquals("/_search/scroll", request.getEndpoint());
assertEquals(0, request.getParameters().size());
assertToXContentBody(searchScrollRequest, request.getEntity());
Expand All @@ -951,7 +958,7 @@ public void testClearScroll() throws IOException {
clearScrollRequest.addScrollId(randomAlphaOfLengthBetween(5, 10));
}
Request request = Request.clearScroll(clearScrollRequest);
assertEquals("DELETE", request.getMethod());
assertEquals(HttpDelete.METHOD_NAME, request.getMethod());
assertEquals("/_search/scroll", request.getEndpoint());
assertEquals(0, request.getParameters().size());
assertToXContentBody(clearScrollRequest, request.getEntity());
Expand Down