Package org.elasticsearch.rest
Class RestRequest
org.elasticsearch.rest.RestRequest
- All Implemented Interfaces:
org.elasticsearch.common.xcontent.ToXContent.Params
public class RestRequest
extends
implements org.elasticsearch.common.xcontent.ToXContent.Params
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static class
static class
-
Constructor Summary
ModifierConstructorDescriptionprotected
RestRequest(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, <,> params, path, <,<>> headers, HttpRequest httpRequest, HttpChannel httpChannel)
protected
RestRequest(RestRequest restRequest)
-
Method Summary
Modifier and TypeMethodDescriptionvoid
> applyParser)
If there is any content then callapplyParser
with the parser, otherwise do nothing.content()
int
org.elasticsearch.core.Tuple<org.elasticsearch.common.xcontent.XContentType,BytesReference>
Get the content of the request or the contents of thesource
param or throw an exception if both are missing.org.elasticsearch.common.xcontent.XContentParser
A parser for the contents of this request if it has contents, otherwise a parser for thesource
parameter if there is one, otherwise throws anElasticsearchParseException
.org.elasticsearch.common.xcontent.XContentParser
A parser for the contents of this request if there is a body, otherwise throws anElasticsearchParseException
.<>
name)
Get all values for the header ornull
if the header was not found<,<>>
Get all of the headers and values associated with the headers.long
org.elasticsearch.common.xcontent.NamedXContentRegistry
Get theNamedXContentRegistry
that should be used to create parsers from this request.org.elasticsearch.common.xcontent.XContentType
TheXContentType
that was parsed from theContent-Type
header.boolean
boolean
Does this request have content or asource
parameter? Use this instead ofhasContent()
if this RestHandler treats thesource
parameter like the body content.boolean
key)
name)
Get the value of the header ornull
if not found.boolean
method()
Returns the HTTP method used in the REST request.key)
key, defaultValue)
boolean
key, boolean defaultValue)
key, defaultValue)
double
key, double defaultValue)
float
key, float defaultValue)
int
key, int defaultValue)
long
key, long defaultValue)
key, ByteSizeValue defaultValue)
[]
key, [] defaultValue)
[]
key)
org.elasticsearch.core.TimeValue
key, org.elasticsearch.core.TimeValue defaultValue)
<,>
params()
static org.elasticsearch.common.xcontent.XContentType
<> header)
Parses the given content type string for the media type.path()
The path part of the URI (without the query string), decoded.rawPath()
The non decoded, raw path provided.static RestRequest
request(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, HttpRequest httpRequest, HttpChannel httpChannel)
Creates a new REST request.static RestRequest
requestWithoutParameters(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, HttpRequest httpRequest, HttpChannel httpChannel)
Creates a new REST request.uri()
The uri of the rest request, with the query string.void
> withParser)
Call a consumer with the parser for the contents of this request if it has contents, otherwise with a parser for thesource
parameter if there is one, otherwise withnull
.Methods inherited from class java.lang.
, , , , , , , , , ,
-
Constructor Details
-
RestRequest
protected RestRequest(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, <,> params, path, <,<>> headers, HttpRequest httpRequest, HttpChannel httpChannel) -
RestRequest
-
-
Method Details
-
isContentConsumed
public boolean isContentConsumed() -
request
public static RestRequest request(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, HttpRequest httpRequest, HttpChannel httpChannel)Creates a new REST request. This method will throwRestRequest.BadParameterException
if the path cannot be decoded- Parameters:
xContentRegistry
- the content registryhttpRequest
- the http requesthttpChannel
- the http channel- Throws:
RestRequest.BadParameterException
- if the parameters can not be decodedRestRequest.ContentTypeHeaderException
- if the Content-Type header can not be parsed
-
requestWithoutParameters
public static RestRequest requestWithoutParameters(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, HttpRequest httpRequest, HttpChannel httpChannel)Creates a new REST request. The path is not decoded so this constructor will not throw aRestRequest.BadParameterException
.- Parameters:
xContentRegistry
- the content registryhttpRequest
- the http requesthttpChannel
- the http channel- Throws:
RestRequest.ContentTypeHeaderException
- if the Content-Type header can not be parsed
-
method
Returns the HTTP method used in the REST request.- Returns:
- the
RestRequest.Method
used in the REST request - Throws:
- if the HTTP method is invalid
-
uri
public uri()The uri of the rest request, with the query string. -
rawPath
public rawPath()The non decoded, raw path provided. -
path
public final path()The path part of the URI (without the query string), decoded. -
hasContent
public boolean hasContent() -
contentLength
public int contentLength() -
content
-
requiredContent
- Returns:
- content of the request body or throw an exception if the body or content type is missing
-
header
public final header( name)Get the value of the header ornull
if not found. This method only retrieves the first header value if multiple values are sent. Use ofgetAllHeaderValues(String)
should be preferred -
getAllHeaderValues
public final <> getAllHeaderValues( name)Get all values for the header ornull
if the header was not found -
getHeaders
public final <,<>> getHeaders()Get all of the headers and values associated with the headers. Modifications of this map are not supported. -
getRequestId
public final long getRequestId() -
getXContentType
@Nullable public final org.elasticsearch.common.xcontent.XContentType getXContentType()TheXContentType
that was parsed from theContent-Type
header. This value will benull
in the case of a request without a validContent-Type
header, a request without content (hasContent()
, or a plain text request -
getHttpChannel
-
getHttpRequest
-
hasParam
public final boolean hasParam( key) -
param
public final param( key)- Specified by:
param
in interfaceorg.elasticsearch.common.xcontent.ToXContent.Params
-
param
public final param( key, defaultValue)- Specified by:
param
in interfaceorg.elasticsearch.common.xcontent.ToXContent.Params
-
params
public <,> params() -
paramAsFloat
public float paramAsFloat( key, float defaultValue) -
paramAsDouble
public double paramAsDouble( key, double defaultValue) -
paramAsInt
public int paramAsInt( key, int defaultValue) -
paramAsLong
public long paramAsLong( key, long defaultValue) -
paramAsBoolean
public boolean paramAsBoolean( key, boolean defaultValue)- Specified by:
paramAsBoolean
in interfaceorg.elasticsearch.common.xcontent.ToXContent.Params
-
paramAsBoolean
public paramAsBoolean( key, defaultValue)- Specified by:
paramAsBoolean
in interfaceorg.elasticsearch.common.xcontent.ToXContent.Params
-
paramAsTime
public org.elasticsearch.core.TimeValue paramAsTime( key, org.elasticsearch.core.TimeValue defaultValue) -
paramAsSize
public key, ByteSizeValue defaultValue) -
paramAsStringArray
public [] paramAsStringArray( key, [] defaultValue) -
paramAsStringArrayOrEmptyIfAll
public [] paramAsStringArrayOrEmptyIfAll( key) -
getXContentRegistry
public org.elasticsearch.common.xcontent.NamedXContentRegistry getXContentRegistry()Get theNamedXContentRegistry
that should be used to create parsers from this request. -
contentParser
public final org.elasticsearch.common.xcontent.XContentParser contentParser() throwsA parser for the contents of this request if there is a body, otherwise throws anElasticsearchParseException
. UseapplyContentParser(CheckedConsumer)
if you want to gracefully handle when the request doesn't have any contents. UsecontentOrSourceParamParser()
for requests that support specifying the request body in thesource
param.- Throws:
-
applyContentParser
public final void applyContentParser(org.elasticsearch.core.CheckedConsumer<org.elasticsearch.common.xcontent.XContentParser,> applyParser) throwsIf there is any content then callapplyParser
with the parser, otherwise do nothing.- Throws:
-
hasContentOrSourceParam
public final boolean hasContentOrSourceParam()Does this request have content or asource
parameter? Use this instead ofhasContent()
if this RestHandler treats thesource
parameter like the body content. -
contentOrSourceParamParser
public final org.elasticsearch.common.xcontent.XContentParser contentOrSourceParamParser() throwsA parser for the contents of this request if it has contents, otherwise a parser for thesource
parameter if there is one, otherwise throws anElasticsearchParseException
. UsewithContentOrSourceParamParserOrNull(CheckedConsumer)
instead if you need to handle the absence request content gracefully.- Throws:
-
withContentOrSourceParamParserOrNull
public final void withContentOrSourceParamParserOrNull(org.elasticsearch.core.CheckedConsumer<org.elasticsearch.common.xcontent.XContentParser,> withParser) throwsCall a consumer with the parser for the contents of this request if it has contents, otherwise with a parser for thesource
parameter if there is one, otherwise withnull
. UsecontentOrSourceParamParser()
if you should throw an exception back to the user when there isn't request content.- Throws:
-
contentOrSourceParam
public final org.elasticsearch.core.Tuple<org.elasticsearch.common.xcontent.XContentType,BytesReference> contentOrSourceParam()Get the content of the request or the contents of thesource
param or throw an exception if both are missing. PrefercontentOrSourceParamParser()
orwithContentOrSourceParamParserOrNull(CheckedConsumer)
if you need a parser. -
parseContentType
public static org.elasticsearch.common.xcontent.XContentType parseContentType(<> header)Parses the given content type string for the media type. This method currently ignores parameters.
-