org.springframework.web.client
Interface RestOperations

All Known Implementing Classes:
RestTemplate

public interface RestOperations

Interface specifying a basic set of RESTful operations. Implemented by RestTemplate. Not often used directly, but a useful option to enhance testability, as it can easily be mocked or stubbed.

Since:
3.0
Author:
Arjen Poutsma, Juergen Hoeller
See Also:
RestTemplate

Method Summary
 void delete(String url, Map<String,?> uriVariables)
          Delete the resources at the specified URI.
 void delete(String url, Object... uriVariables)
          Delete the resources at the specified URI.
 void delete(URI url)
          Delete the resources at the specified URL.
<T> ResponseEntity<T>
exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Map<String,?> uriVariables)
          Execute the HTTP method to the given URI template, writing the given request entity to the request, and returns the response as ResponseEntity.
<T> ResponseEntity<T>
exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables)
          Execute the HTTP method to the given URI template, writing the given request entity to the request, and returns the response as ResponseEntity.
<T> ResponseEntity<T>
exchange(URI url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType)
          Execute the HTTP method to the given URI template, writing the given request entity to the request, and returns the response as ResponseEntity.
<T> T
execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Map<String,?> uriVariables)
          Execute the HTTP method to the given URI template, preparing the request with the RequestCallback, and reading the response with a ResponseExtractor.
<T> T
execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor, Object... uriVariables)
          Execute the HTTP method to the given URI template, preparing the request with the RequestCallback, and reading the response with a ResponseExtractor.
<T> T
execute(URI url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor<T> responseExtractor)
          Execute the HTTP method to the given URL, preparing the request with the RequestCallback, and reading the response with a ResponseExtractor.
<T> ResponseEntity<T>
getForEntity(String url, Class<T> responseType, Map<String,?> uriVariables)
          Retrieve a representation by doing a GET on the URI template.
<T> ResponseEntity<T>
getForEntity(String url, Class<T> responseType, Object... uriVariables)
          Retrieve an entity by doing a GET on the specified URL.
<T> ResponseEntity<T>
getForEntity(URI url, Class<T> responseType)
          Retrieve a representation by doing a GET on the URL .
<T> T
getForObject(String url, Class<T> responseType, Map<String,?> uriVariables)
          Retrieve a representation by doing a GET on the URI template.
<T> T
getForObject(String url, Class<T> responseType, Object... uriVariables)
          Retrieve a representation by doing a GET on the specified URL.
<T> T
getForObject(URI url, Class<T> responseType)
          Retrieve a representation by doing a GET on the URL .
 HttpHeaders headForHeaders(String url, Map<String,?> uriVariables)
          Retrieve all headers of the resource specified by the URI template.
 HttpHeaders headForHeaders(String url, Object... uriVariables)
          Retrieve all headers of the resource specified by the URI template.
 HttpHeaders headForHeaders(URI url)
          Retrieve all headers of the resource specified by the URL.
 Set<HttpMethod> optionsForAllow(String url, Map<String,?> uriVariables)
          Return the value of the Allow header for the given URI.
 Set<HttpMethod> optionsForAllow(String url, Object... uriVariables)
          Return the value of the Allow header for the given URI.
 Set<HttpMethod> optionsForAllow(URI url)
          Return the value of the Allow header for the given URL.
<T> ResponseEntity<T>
postForEntity(String url, Object request, Class<T> responseType, Map<String,?> uriVariables)
          Create a new resource by POSTing the given object to the URI template, and returns the response as HttpEntity.
<T> ResponseEntity<T>
postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)
          Create a new resource by POSTing the given object to the URI template, and returns the response as ResponseEntity.
<T> ResponseEntity<T>
postForEntity(URI url, Object request, Class<T> responseType)
          Create a new resource by POSTing the given object to the URL, and returns the response as ResponseEntity.
 URI postForLocation(String url, Object request, Map<String,?> uriVariables)
          Create a new resource by POSTing the given object to the URI template, and returns the value of the Location header.
 URI postForLocation(String url, Object request, Object... uriVariables)
          Create a new resource by POSTing the given object to the URI template, and returns the value of the Location header.
 URI postForLocation(URI url, Object request)
          Create a new resource by POSTing the given object to the URL, and returns the value of the Location header.
<T> T
postForObject(String url, Object request, Class<T> responseType, Map<String,?> uriVariables)
          Create a new resource by POSTing the given object to the URI template, and returns the representation found in the response.
<T> T
postForObject(String url, Object request, Class<T> responseType, Object... uriVariables)
          Create a new resource by POSTing the given object to the URI template, and returns the representation found in the response.
<T> T
postForObject(URI url, Object request, Class<T> responseType)
          Create a new resource by POSTing the given object to the URL, and returns the representation found in the response.
 void put(String url, Object request, Map<String,?> uriVariables)
          Creates a new resource by PUTting the given object to URI template.
 void put(String url, Object request, Object... uriVariables)
          Create or update a resource by PUTting the given object to the URI.
 void put(URI url, Object request)
          Creates a new resource by PUTting the given object to URL.
 

Method Detail

getForObject

<T> T getForObject(String url,
                   Class<T> responseType,
                   Object... uriVariables)
               throws RestClientException
Retrieve a representation by doing a GET on the specified URL. The response (if any) is converted and returned.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
responseType - the type of the return value
uriVariables - the variables to expand the template
Returns:
the converted object
Throws:
RestClientException

getForObject

<T> T getForObject(String url,
                   Class<T> responseType,
                   Map<String,?> uriVariables)
               throws RestClientException
Retrieve a representation by doing a GET on the URI template. The response (if any) is converted and returned.

URI Template variables are expanded using the given map.

Parameters:
url - the URL
responseType - the type of the return value
uriVariables - the map containing variables for the URI template
Returns:
the converted object
Throws:
RestClientException

getForObject

<T> T getForObject(URI url,
                   Class<T> responseType)
               throws RestClientException
Retrieve a representation by doing a GET on the URL . The response (if any) is converted and returned.

Parameters:
url - the URL
responseType - the type of the return value
Returns:
the converted object
Throws:
RestClientException

getForEntity

<T> ResponseEntity<T> getForEntity(String url,
                                   Class<T> responseType,
                                   Object... uriVariables)
                               throws RestClientException
Retrieve an entity by doing a GET on the specified URL. The response is converted and stored in an ResponseEntity.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
responseType - the type of the return value
uriVariables - the variables to expand the template
Returns:
the entity
Throws:
RestClientException
Since:
3.0.2

getForEntity

<T> ResponseEntity<T> getForEntity(String url,
                                   Class<T> responseType,
                                   Map<String,?> uriVariables)
                               throws RestClientException
Retrieve a representation by doing a GET on the URI template. The response is converted and stored in an ResponseEntity.

URI Template variables are expanded using the given map.

Parameters:
url - the URL
responseType - the type of the return value
uriVariables - the map containing variables for the URI template
Returns:
the converted object
Throws:
RestClientException
Since:
3.0.2

getForEntity

<T> ResponseEntity<T> getForEntity(URI url,
                                   Class<T> responseType)
                               throws RestClientException
Retrieve a representation by doing a GET on the URL . The response is converted and stored in an ResponseEntity.

Parameters:
url - the URL
responseType - the type of the return value
Returns:
the converted object
Throws:
RestClientException
Since:
3.0.2

headForHeaders

HttpHeaders headForHeaders(String url,
                           Object... uriVariables)
                           throws RestClientException
Retrieve all headers of the resource specified by the URI template.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
uriVariables - the variables to expand the template
Returns:
all HTTP headers of that resource
Throws:
RestClientException

headForHeaders

HttpHeaders headForHeaders(String url,
                           Map<String,?> uriVariables)
                           throws RestClientException
Retrieve all headers of the resource specified by the URI template.

URI Template variables are expanded using the given map.

Parameters:
url - the URL
uriVariables - the map containing variables for the URI template
Returns:
all HTTP headers of that resource
Throws:
RestClientException

headForHeaders

HttpHeaders headForHeaders(URI url)
                           throws RestClientException
Retrieve all headers of the resource specified by the URL.

Parameters:
url - the URL
Returns:
all HTTP headers of that resource
Throws:
RestClientException

postForLocation

URI postForLocation(String url,
                    Object request,
                    Object... uriVariables)
                    throws RestClientException
Create a new resource by POSTing the given object to the URI template, and returns the value of the Location header. This header typically indicates where the new resource is stored.

URI Template variables are expanded using the given URI variables, if any.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
uriVariables - the variables to expand the template
Returns:
the value for the Location header
Throws:
RestClientException
See Also:
HttpEntity

postForLocation

URI postForLocation(String url,
                    Object request,
                    Map<String,?> uriVariables)
                    throws RestClientException
Create a new resource by POSTing the given object to the URI template, and returns the value of the Location header. This header typically indicates where the new resource is stored.

URI Template variables are expanded using the given map.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
uriVariables - the variables to expand the template
Returns:
the value for the Location header
Throws:
RestClientException
See Also:
HttpEntity

postForLocation

URI postForLocation(URI url,
                    Object request)
                    throws RestClientException
Create a new resource by POSTing the given object to the URL, and returns the value of the Location header. This header typically indicates where the new resource is stored.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
Returns:
the value for the Location header
Throws:
RestClientException
See Also:
HttpEntity

postForObject

<T> T postForObject(String url,
                    Object request,
                    Class<T> responseType,
                    Object... uriVariables)
                throws RestClientException
Create a new resource by POSTing the given object to the URI template, and returns the representation found in the response.

URI Template variables are expanded using the given URI variables, if any.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
responseType - the type of the return value
uriVariables - the variables to expand the template
Returns:
the converted object
Throws:
RestClientException
See Also:
HttpEntity

postForObject

<T> T postForObject(String url,
                    Object request,
                    Class<T> responseType,
                    Map<String,?> uriVariables)
                throws RestClientException
Create a new resource by POSTing the given object to the URI template, and returns the representation found in the response.

URI Template variables are expanded using the given map.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
responseType - the type of the return value
uriVariables - the variables to expand the template
Returns:
the converted object
Throws:
RestClientException
See Also:
HttpEntity

postForObject

<T> T postForObject(URI url,
                    Object request,
                    Class<T> responseType)
                throws RestClientException
Create a new resource by POSTing the given object to the URL, and returns the representation found in the response.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
responseType - the type of the return value
Returns:
the converted object
Throws:
RestClientException
See Also:
HttpEntity

postForEntity

<T> ResponseEntity<T> postForEntity(String url,
                                    Object request,
                                    Class<T> responseType,
                                    Object... uriVariables)
                                throws RestClientException
Create a new resource by POSTing the given object to the URI template, and returns the response as ResponseEntity.

URI Template variables are expanded using the given URI variables, if any.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
uriVariables - the variables to expand the template
Returns:
the converted object
Throws:
RestClientException
Since:
3.0.2
See Also:
HttpEntity

postForEntity

<T> ResponseEntity<T> postForEntity(String url,
                                    Object request,
                                    Class<T> responseType,
                                    Map<String,?> uriVariables)
                                throws RestClientException
Create a new resource by POSTing the given object to the URI template, and returns the response as HttpEntity.

URI Template variables are expanded using the given map.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
uriVariables - the variables to expand the template
Returns:
the converted object
Throws:
RestClientException
Since:
3.0.2
See Also:
HttpEntity

postForEntity

<T> ResponseEntity<T> postForEntity(URI url,
                                    Object request,
                                    Class<T> responseType)
                                throws RestClientException
Create a new resource by POSTing the given object to the URL, and returns the response as ResponseEntity.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be POSTed, may be null
Returns:
the converted object
Throws:
RestClientException
Since:
3.0.2
See Also:
HttpEntity

put

void put(String url,
         Object request,
         Object... uriVariables)
         throws RestClientException
Create or update a resource by PUTting the given object to the URI.

URI Template variables are expanded using the given URI variables, if any.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be PUT, may be null
uriVariables - the variables to expand the template
Throws:
RestClientException
See Also:
HttpEntity

put

void put(String url,
         Object request,
         Map<String,?> uriVariables)
         throws RestClientException
Creates a new resource by PUTting the given object to URI template.

URI Template variables are expanded using the given map.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be PUT, may be null
uriVariables - the variables to expand the template
Throws:
RestClientException
See Also:
HttpEntity

put

void put(URI url,
         Object request)
         throws RestClientException
Creates a new resource by PUTting the given object to URL.

The request parameter can be a HttpEntity in order to add additional HTTP headers to the request.

Parameters:
url - the URL
request - the Object to be PUT, may be null
Throws:
RestClientException
See Also:
HttpEntity

delete

void delete(String url,
            Object... uriVariables)
            throws RestClientException
Delete the resources at the specified URI.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
uriVariables - the variables to expand in the template
Throws:
RestClientException

delete

void delete(String url,
            Map<String,?> uriVariables)
            throws RestClientException
Delete the resources at the specified URI.

URI Template variables are expanded using the given map.

Parameters:
url - the URL
uriVariables - the variables to expand the template
Throws:
RestClientException

delete

void delete(URI url)
            throws RestClientException
Delete the resources at the specified URL.

Parameters:
url - the URL
Throws:
RestClientException

optionsForAllow

Set<HttpMethod> optionsForAllow(String url,
                                Object... uriVariables)
                                throws RestClientException
Return the value of the Allow header for the given URI.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
uriVariables - the variables to expand in the template
Returns:
the value of the allow header
Throws:
RestClientException

optionsForAllow

Set<HttpMethod> optionsForAllow(String url,
                                Map<String,?> uriVariables)
                                throws RestClientException
Return the value of the Allow header for the given URI.

URI Template variables are expanded using the given map.

Parameters:
url - the URL
uriVariables - the variables to expand in the template
Returns:
the value of the allow header
Throws:
RestClientException

optionsForAllow

Set<HttpMethod> optionsForAllow(URI url)
                                throws RestClientException
Return the value of the Allow header for the given URL.

Parameters:
url - the URL
Returns:
the value of the allow header
Throws:
RestClientException

exchange

<T> ResponseEntity<T> exchange(String url,
                               HttpMethod method,
                               HttpEntity<?> requestEntity,
                               Class<T> responseType,
                               Object... uriVariables)
                           throws RestClientException
Execute the HTTP method to the given URI template, writing the given request entity to the request, and returns the response as ResponseEntity.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
method - the HTTP method (GET, POST, etc)
requestEntity - the entity (headers and/or body) to write to the request, may be null
responseType - the type of the return value
uriVariables - the variables to expand in the template
Returns:
the response as entity
Throws:
RestClientException
Since:
3.0.2

exchange

<T> ResponseEntity<T> exchange(String url,
                               HttpMethod method,
                               HttpEntity<?> requestEntity,
                               Class<T> responseType,
                               Map<String,?> uriVariables)
                           throws RestClientException
Execute the HTTP method to the given URI template, writing the given request entity to the request, and returns the response as ResponseEntity.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
method - the HTTP method (GET, POST, etc)
requestEntity - the entity (headers and/or body) to write to the request, may be null
responseType - the type of the return value
uriVariables - the variables to expand in the template
Returns:
the response as entity
Throws:
RestClientException
Since:
3.0.2

exchange

<T> ResponseEntity<T> exchange(URI url,
                               HttpMethod method,
                               HttpEntity<?> requestEntity,
                               Class<T> responseType)
                           throws RestClientException
Execute the HTTP method to the given URI template, writing the given request entity to the request, and returns the response as ResponseEntity.

Parameters:
url - the URL
method - the HTTP method (GET, POST, etc)
requestEntity - the entity (headers and/or body) to write to the request, may be null
responseType - the type of the return value
Returns:
the response as entity
Throws:
RestClientException
Since:
3.0.2

execute

<T> T execute(String url,
              HttpMethod method,
              RequestCallback requestCallback,
              ResponseExtractor<T> responseExtractor,
              Object... uriVariables)
          throws RestClientException
Execute the HTTP method to the given URI template, preparing the request with the RequestCallback, and reading the response with a ResponseExtractor.

URI Template variables are expanded using the given URI variables, if any.

Parameters:
url - the URL
method - the HTTP method (GET, POST, etc)
requestCallback - object that prepares the request
responseExtractor - object that extracts the return value from the response
uriVariables - the variables to expand in the template
Returns:
an arbitrary object, as returned by the ResponseExtractor
Throws:
RestClientException

execute

<T> T execute(String url,
              HttpMethod method,
              RequestCallback requestCallback,
              ResponseExtractor<T> responseExtractor,
              Map<String,?> uriVariables)
          throws RestClientException
Execute the HTTP method to the given URI template, preparing the request with the RequestCallback, and reading the response with a ResponseExtractor.

URI Template variables are expanded using the given URI variables map.

Parameters:
url - the URL
method - the HTTP method (GET, POST, etc)
requestCallback - object that prepares the request
responseExtractor - object that extracts the return value from the response
uriVariables - the variables to expand in the template
Returns:
an arbitrary object, as returned by the ResponseExtractor
Throws:
RestClientException

execute

<T> T execute(URI url,
              HttpMethod method,
              RequestCallback requestCallback,
              ResponseExtractor<T> responseExtractor)
          throws RestClientException
Execute the HTTP method to the given URL, preparing the request with the RequestCallback, and reading the response with a ResponseExtractor.

Parameters:
url - the URL
method - the HTTP method (GET, POST, etc)
requestCallback - object that prepares the request
responseExtractor - object that extracts the return value from the response
Returns:
an arbitrary object, as returned by the ResponseExtractor
Throws:
RestClientException