ex_stream_client
View SourceA client for Stream REST APIs in Elixir - auto generated from their OpenAPI specification.
Features
- Auto-generated from the OpenAPI specification
- Fully typed and documented APIs
- Utilizes Req for HTTP requests by default.
Installation
If available in Hex, the package can be installed
by adding ex_stream_client
to your list of dependencies in mix.exs
:
def deps do
[
{:ex_stream_client, "~> 0.1.0"}
]
end
Configuration
The client requires the following configuration to be set in your config.exs
file:
config :ex_stream_client,
api_key: "your-api-key",
api_key_secret: "your-api-key-secret"
You can also configure the endpoint if you are using a custom one:
config :ex_stream_client,
endpoint: "https://your-custom-endpoint.com"
Logging
The client supports logging of requests and responses. You can enable it by configuring the log
option in your config.exs
file:
config :ex_stream_client,
log: [
level: :info,
request: [:url, :body],
response: [:status]
]
The level
key sets the log level for all log messages. The request
and response
keys are lists of touchpoints to log. The available touchpoints are:
:url
- logs the request URL:body
- logs the request body, if found:status
- logs the response status
By default, all touchpoints are disabled, so nothing will be logged.
Acknowledgements
This project includes code adapted from ex_openai, which is licensed under the MIT License. We thought the idea to generate client code via the Elixir AST was a great one!