# HTTP

Kubemq Https target connector allows services using kubemq server to invoke http rest function to any destination.

## Prerequisites

The following are required to run the http target connector:

* kubemq cluster
* kubemq-targets deployment

## Configuration

http target connector configuration properties:

| Properties Key       | Required | Description                                     | Example                            |
| -------------------- | -------- | ----------------------------------------------- | ---------------------------------- |
| auth\_type           | no       | http authentication type                        | "","no\_auth","basic","auth\_token |
| username             | no       | set username in auth\_type=basic mode           | "admin"                            |
| password             | no       | set password in auth\_type=basic mode           | "password"                         |
| token                | no       | set auth token in auth\_type=auth\_token mode   | valid JWT token                    |
| proxy                | no       | set proxy url                                   | "<http://localhost:8080>"          |
| root\_certificate    | no       | set root ca certificate for mTLS handshake      | any x509 pem                       |
| client\_private\_key | no       | set private key for mTLS handshake              | any x509 pem                       |
| client\_public\_key  | no       | set public key for mTLS handshake               | any x509 pem                       |
| default\_headers     | no       | set any default headers to be add for each call | map of headers                     |

Example:

```yaml
bindings:
  - name: kubemq-query-https
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-http-connector"
        auth_token: ""
        channel: "query.http"
        group:   ""
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: http
      name: target-http
      properties:
        auth_type: "no-auth"
        default_headers: '{"Content-Type":"application/json"}'
```

## Usage

### Request

Request metadata setting:

| Metadata Key | Required | Description                     | Possible values                       |
| ------------ | -------- | ------------------------------- | ------------------------------------- |
| method       | yes      | http method to invoke           | "get","post","head","put"             |
|              |          |                                 | "delete","patch","options"            |
| url          | yes      | http url                        | "<https://httpbin.org/get>"           |
| headers      | no       | any headers required for method | '{"Content-Type":"application/json"}' |

Request data setting:

| Data Key | Required | Description                      | Possible values    |
| -------- | -------- | -------------------------------- | ------------------ |
| data     | yes      | data to set for the http request | base64 bytes array |

Example:

```javascript
{
  "metadata": {
    "method": "get",
    "url": "https://httpbin.org/get" 
  },
 "data": null
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kubemq.io/configuration/connectors/kubemq-targets/standalone/http.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
