Package com.ngrok

# Interface NgrokApiClient

All Known Implementing Classes:
  `DefaultNgrokApiClient`

public interface NgrokApiClient
API client interface. Concrete implementations can be written and passed to `Ngrok` on construction in order to make HTTP requests or test business logic.

See Also:
  - `DefaultNgrokApiClient`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static enum`
  `NgrokApiClient.HttpMethod`
  HTTP request methods

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final URI`
  `DEFAULT_BASE_URI`
  The default base URI for the public ngrok API server

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<O> CompletionStage<O>`
  `sendRequest(NgrokApiClient.HttpMethod method, String endpoint, Stream<Map.Entry<String,Optional<Object>>> queryParams, Stream<Map.Entry<String,Optional<Object>>> bodyParams, Optional<Class<O>> responseClass)`
  Sends a request to the ngrok API.
  `<O> CompletionStage<O>`
  `sendRequest(URI uri, Class<O> responseClass)`
  Sends a GET request directly to the specified URI.

- ## Field Details

  - ### DEFAULT_BASE_URI

    static final URI DEFAULT_BASE_URI
    The default base URI for the public ngrok API server

- ## Method Details

  - ### sendRequest

    <O> CompletionStage<O> sendRequest(URI uri, Class<O> responseClass)
    Sends a GET request directly to the specified URI.
    Type Parameters:
      `O` - the return type for the API response
    Parameters:
      `uri` - a URI to send the request to
      `responseClass` - the type of a Jackson-annotated POJO representing the HTTP response body
    Returns:
      a future encapsulating the response type

  - ### sendRequest

    <O> CompletionStage<O> sendRequest(NgrokApiClient.HttpMethod method, String endpoint, Stream<Map.Entry<String,Optional<Object>>> queryParams, Stream<Map.Entry<String,Optional<Object>>> bodyParams, Optional<Class<O>> responseClass)
    Sends a request to the ngrok API.
    Type Parameters:
      `O` - the return type for the API response
    Parameters:
      `method` - the HTTP method to use
      `endpoint` - the endpoint (under the base URI) to send the request to
      `queryParams` - any query parameters to send along with the request (parameters with an empty value will not be sent)
      `bodyParams` - any JSON body parameters to send along withthe request (parameters with an empty value will not be sent). If this stream is empty, no body should be sent.
      `responseClass` - an optional type for a Jackson-annotated POJO representing the HTTP response body
    Returns:
      a future encapsulating the response type (will be `Void` for empty responses)