Class CoreHttpRequest

java.lang.Object
com.couchbase.client.core.msg.BaseRequest<CoreHttpResponse>
com.couchbase.client.core.endpoint.http.CoreHttpRequest
All Implemented Interfaces:
Encodable<com.couchbase.client.core.deps.io.netty.handler.codec.http.FullHttpRequest>, NonChunkedHttpRequest<CoreHttpResponse>, Request<CoreHttpResponse>

@Internal public class CoreHttpRequest extends BaseRequest<CoreHttpResponse> implements NonChunkedHttpRequest<CoreHttpResponse>
  • Method Details

    • builder

      public static CoreHttpRequest.Builder builder(CoreCommonOptions options, CoreContext coreContext, com.couchbase.client.core.deps.io.netty.handler.codec.http.HttpMethod method, CoreHttpPath path, RequestTarget target)
    • name

      public String name()
      Description copied from interface: Request
      The unique name of the request, usually related to the type but not necessarily.

      The default implementation is derived from the class name (i.e. FooRequest returns foo), but if that does not match up it should be overridden in the actual class.

      Specified by:
      name in interface Request<CoreHttpResponse>
      Returns:
      the name of the request type.
    • exec

    • encode

      public com.couchbase.client.core.deps.io.netty.handler.codec.http.FullHttpRequest encode()
      Specified by:
      encode in interface Encodable<com.couchbase.client.core.deps.io.netty.handler.codec.http.FullHttpRequest>
    • decode

      public CoreHttpResponse decode(com.couchbase.client.core.deps.io.netty.handler.codec.http.FullHttpResponse response, HttpChannelContext channelContext)
      Specified by:
      decode in interface NonChunkedHttpRequest<CoreHttpResponse>
    • serviceType

      public ServiceType serviceType()
      Description copied from interface: Request
      The service type of this request.

      Can be null if this is a 'virtual service' (e.g. transactions), which don't map 1:1 to a particular cluster service, but need to integrate into various codepaths that are built around ServiceType such as ThresholdLoggingTracer. Virtual requests must not be sent into core at present, as there is limited support for them.

      Specified by:
      serviceType in interface Request<CoreHttpResponse>
      Returns:
      the service type for this request.
    • idempotent

      public boolean idempotent()
      Description copied from interface: Request
      Returns if the given request is idempotent or not.

      By default, this method always returns false for data consistency reasons. Only specific idempotent operations should override this default since it impacts retry handling quite a bit. DO NOT SET THIS TO TRUE ON MUTATING OPERATIONS!

      Specified by:
      idempotent in interface Request<CoreHttpResponse>
      Returns:
      true if idempotent.
    • target

      public NodeIdentifier target()
      Description copied from interface: Request
      Returns the node that should service this request, or null to let the service locator decide.
      Specified by:
      target in interface Request<CoreHttpResponse>
      Returns:
      (nullable) node the request should be dispatched to, or null to let the service locator decide.
    • bucket

      public String bucket()
      Description copied from interface: Request
      Returns the name of the bucket this request is scoped to, or null if not scoped to a bucket.
      Specified by:
      bucket in interface Request<CoreHttpResponse>
      Returns:
      (nullable) name of the bucket this request is scoped to, or null if not scoped to a bucket.
    • serviceContext

      public Map<String,Object> serviceContext()
      Description copied from interface: Request
      Returns contextual information for each individual service.
      Specified by:
      serviceContext in interface Request<CoreHttpResponse>
      Overrides:
      serviceContext in class BaseRequest<CoreHttpResponse>
      Returns:
      the service context.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • bypassExceptionTranslation

      public boolean bypassExceptionTranslation()
      Description copied from interface: NonChunkedHttpRequest
      If true, a non-2xx HTTP status code must be reported as an HttpStatusCodeException. This lets users see the raw HTTP response when making their own HTTP requests with CouchbaseHttpClient.

      If false, the message handler may throw a domain-specific exception instead.

      Specified by:
      bypassExceptionTranslation in interface NonChunkedHttpRequest<CoreHttpResponse>