2.3 KiB
Configuration
Standard registration
In an ASP.NET Core or generic-host application, AddBinaryLaneApi configures
IBinaryLaneClient, individual resource interfaces, and the underlying typed
HttpClient.
builder.Services.AddBinaryLaneApi(options =>
{
options.ApiToken = builder.Configuration["BinaryLane:ApiToken"];
});
| Setting | Default | Description |
|---|---|---|
BaseUrl |
https://api.binarylane.com.au/ |
Root URI used for API requests. |
ApiToken |
none | Bearer token used by the default provider. |
RequestTimeoutSeconds |
100 |
Timeout for an individual HTTP request. |
BaseUrl must be an HTTPS URL without credentials, a query string, or a
fragment. BaseUrl and RequestTimeoutSeconds are validated when the host
starts; request timeouts can range from 1 to 300 seconds.
Rotating tokens
Register IBinaryLaneTokenProvider before calling AddBinaryLaneApi when the
token comes from a vault or changes during the lifetime of the application.
VaultTokenProvider below is your implementation of that interface.
using BinaryLane.Api.V2.Authentication;
using BinaryLane.Api.V2.DependencyInjection;
builder.Services.AddSingleton<IBinaryLaneTokenProvider, VaultTokenProvider>();
builder.Services.AddBinaryLaneApi(options => options.RequestTimeoutSeconds = 100);
The provider is called for every outgoing request.
Use without dependency injection
using BinaryLane.Api.V2;
using BinaryLane.Api.V2.Authentication;
using var httpClient = new HttpClient
{
BaseAddress = new Uri("https://api.binarylane.com.au/"),
};
var token = Environment.GetEnvironmentVariable("BINARYLANE_API_TOKEN")
?? throw new InvalidOperationException("Set BINARYLANE_API_TOKEN.");
var client = new BinaryLaneClient(
httpClient,
new StaticBinaryLaneTokenProvider(token));
HTTP configuration
AddBinaryLaneApi returns an IHttpClientBuilder, so you can configure proxy,
telemetry, or other application-specific handlers.
builder.Services.AddBinaryLaneApi(options =>
options.ApiToken = builder.Configuration["BinaryLane:ApiToken"])
.ConfigureHttpClient(client => client.DefaultRequestHeaders.Add("X-App", "my-service"));
The client does not apply retries itself. Applications can add their own
handlers through the returned IHttpClientBuilder.