# Jax-rs rest api using stored template

**URL:** <https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682>\
**Category:** Elasticsearch\
**Created:** [January 5, 2017, 12:52pm UTC](https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682 "2017-01-05T12:52:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![chnoe](https://avatars.discourse-cdn.com/v4/letter/c/45deac/32.png) [@chnoe](https://discuss.elastic.co/u/chnoe)\
**Post date:** [January 5, 2017, 12:52pm UTC](https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682/1 "2017-01-05T12:52:49Z")

</div>

Hi,

I'm trying to figure how I can create a jax-rs REST call to search elastic search using a stored template.  
for the moment I'm doing a POST , using the http body to put the data in. Somehting like this :

POST [http://1.2.3.4:9200/index/type/\_search/template](http://1.2.3.4:9200/index/type/_search/template)

and as a body :  
{  
"file": "count",  
"params": {  
"grp\_by\_field": "objecttype.keyword"  
}  
}

where count is the moustache file. Is this correct ? This works in jmeter, but I'm getting a http 400 status back when  
executing this using jax-rs :  
String queryString="{ "file": "count" , "params": { "grp\_by\_field"="objecttype.keyword" } }";

```
	Response r = client
			.target("http://1.2.3.4:9200")
			.path("/index/type/_search/template")
			.request(MediaType.APPLICATION_JSON)
			.post(Entity.json(queryString)); 

```

In any case, it doesn't feel right to do a POST when querying data... Any ideas on how to do this ?

tnx,  
Chris

---

<div class="post-metadata">

**Author:** ![chnoe](https://avatars.discourse-cdn.com/v4/letter/c/45deac/32.png) [@chnoe](https://discuss.elastic.co/u/chnoe)\
**Post date:** [January 5, 2017, 1:54pm UTC](https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682/2 "2017-01-05T13:54:37Z")

</div>

ok, now it works, it was not grp\_by\_field= but grp\_by\_field:

remains the question that : is it correct to the use the api like this : submitting a post to execute a query ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 6, 2017, 8:54am UTC](https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682/3 "2017-01-06T08:54:05Z")

</div>

It's better to use a `GET` indeed as we state in the documentation: [https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html)

That said, some libraries don't support GET with body. That's why we support in that case both `GET` and `POST` verbs.

---

<div class="post-metadata">

**Author:** ![chnoe](https://avatars.discourse-cdn.com/v4/letter/c/45deac/32.png) [@chnoe](https://discuss.elastic.co/u/chnoe)\
**Post date:** [January 6, 2017, 10:17am UTC](https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682/4 "2017-01-06T10:17:55Z")

</div>

ok tnx !

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 3, 2017, 10:17am UTC](https://discuss.elastic.co/t/jax-rs-rest-api-using-stored-template/70682/5 "2017-02-03T10:17:55Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
