Class: KafkaProxyRestClient::ProducerApi

Inherits:
Object
  • Object
show all
Defined in:
lib/kafka_rest_proxy_client/api/producer_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_client = ApiClient.default) ⇒ ProducerApi

Returns a new instance of ProducerApi.



7
8
9
# File 'lib/kafka_rest_proxy_client/api/producer_api.rb', line 7

def initialize(api_client = ApiClient.default)
  @api_client = api_client
end

Instance Attribute Details

#api_clientObject

Returns the value of attribute api_client.



5
6
7
# File 'lib/kafka_rest_proxy_client/api/producer_api.rb', line 5

def api_client
  @api_client
end

Instance Method Details

#topics_topic_name_post(topic_name, body, opts = {}) ⇒ InlineResponse200 Also known as: publish

Produce messages to a topic, optionally specifying keys or partitions for the messages. If no partition is provided, one will be chosen based on the hash of the key. If no key is provided, the partition will be chosen for each message in a round-robin fashion. # For the “avro“ embedded format, you must provide information about schemas and the REST proxy must be configured with the URL to access the schema registry (“schema.registry.connect“). Schemas may be provided as the full schema encoded as a string, or, after the initial request may be provided as the schema ID returned with the first response.

Parameters:

  • topic_name

    Name of the topic to produce the messages to

  • body

    Data to send to the kafka topic.

  • opts (Hash) (defaults to: {})

    the optional parameters

Returns:



17
18
19
20
# File 'lib/kafka_rest_proxy_client/api/producer_api.rb', line 17

def topics_topic_name_post(topic_name, body, opts = {})
  data, _status_code, _headers = topics_topic_name_post_with_http_info(topic_name, body, opts)
  return data
end

#topics_topic_name_post_with_http_info(topic_name, body, opts = {}) ⇒ Array<(InlineResponse200, Fixnum, Hash)>

Produce messages to a topic, optionally specifying keys or partitions for the messages. If no partition is provided, one will be chosen based on the hash of the key. If no key is provided, the partition will be chosen for each message in a round-robin fashion. # For the &#x60;&#x60;avro&#x60;&#x60; embedded format, you must provide information about schemas and the REST proxy must be configured with the URL to access the schema registry (&#x60;&#x60;schema.registry.connect&#x60;&#x60;). Schemas may be provided as the full schema encoded as a string, or, after the initial request may be provided as the schema ID returned with the first response.

Parameters:

  • topic_name

    Name of the topic to produce the messages to

  • body

    Data to send to the kafka topic.

  • opts (Hash) (defaults to: {})

    the optional parameters

Returns:

  • (Array<(InlineResponse200, Fixnum, Hash)>)

    InlineResponse200 data, response status code and response headers



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/kafka_rest_proxy_client/api/producer_api.rb', line 29

def topics_topic_name_post_with_http_info(topic_name, body, opts = {})
  if @api_client.config.debugging
    @api_client.config.logger.debug "Calling API: ProducerApi.topics_topic_name_post ..."
  end
  # verify the required parameter 'topic_name' is set
  fail ArgumentError, "Missing the required parameter 'topic_name' when calling ProducerApi.topics_topic_name_post" if topic_name.nil?
  # verify the required parameter 'body' is set
  fail ArgumentError, "Missing the required parameter 'body' when calling ProducerApi.topics_topic_name_post" if body.nil?
  # resource path
  local_var_path = "/topics/{topic_name}".sub('{format}','json').sub('{' + 'topic_name' + '}', topic_name.to_s)

  # query parameters
  query_params = {}

  # header parameters
  header_params = {}
  # HTTP header 'Accept' (if needed)
  header_params['Accept'] = @api_client.select_header_accept(['application/vnd.kafka.v2+json', 'application/vnd.kafka+json', 'application/json'])
  # HTTP header 'Content-Type'
  header_params['Content-Type'] = @api_client.select_header_content_type(['application/vnd.kafka.v2+json', 'application/vnd.kafka+json', 'application/json'])

  # form parameters
  form_params = {}

  # http body (model)
  post_body = @api_client.object_to_http_body(body)
  auth_names = []
  data, status_code, headers = @api_client.call_api(:POST, local_var_path,
    :header_params => header_params,
    :query_params => query_params,
    :form_params => form_params,
    :body => post_body,
    :auth_names => auth_names,
    :return_type => 'InlineResponse200')
  if @api_client.config.debugging
    @api_client.config.logger.debug "API called: ProducerApi#topics_topic_name_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
  end
  return data, status_code, headers
end