Package groovy.http

Annotation Interface HttpBuilderClient


@Incubating @Retention(SOURCE) @Target(TYPE) public @interface HttpBuilderClient
Marks an interface as a declarative HTTP client. An implementation class is generated at compile time via AST transform, using HttpBuilder for request execution.

Example:

 @HttpBuilderClient('https://api.example.com')
 interface MyApi {
     @Get('/users/{id}')
     Map getUser(String id)
 }

 def api = MyApi.create()
 def user = api.getUser('123')
 
Since:
6.0.0
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    The base URL for all requests.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Whether requests are confined to the base URL.
    int
    Connection timeout in seconds.
    boolean
    Whether to follow HTTP redirects.
    int
    Request timeout in seconds.
  • Element Details

    • value

      String value
      The base URL for all requests.
    • connectTimeout

      int connectTimeout
      Connection timeout in seconds. Default 0 means no timeout.
      Default:
      0
    • requestTimeout

      int requestTimeout
      Request timeout in seconds. Default 0 means no timeout.
      Default:
      0
    • followRedirects

      boolean followRedirects
      Whether to follow HTTP redirects. Default is false.
      Default:
      false
    • confineToBaseUri

      boolean confineToBaseUri
      Whether requests are confined to the base URL. When true, a request whose resolved URI leaves the base URL's origin (scheme, host, or effective port) or its path prefix is rejected with a SecurityException. This covers a request template with an absolute path or .. traversal, as well as an alternate base URL supplied to the generated create(String) / create(Closure) factory that points at a different host. Default is false.
      Default:
      false