https://github.com/apitoolkit/apitoolkit-dotnet
APIToolkit's .Net client SDK.
https://github.com/apitoolkit/apitoolkit-dotnet
apitoolkit apitoolkit-sdk dotnet
Last synced: 3 months ago
JSON representation
APIToolkit's .Net client SDK.
- Host: GitHub
- URL: https://github.com/apitoolkit/apitoolkit-dotnet
- Owner: apitoolkit
- License: mit
- Created: 2023-05-06T17:14:13.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-11T20:11:34.000Z (about 1 year ago)
- Last Synced: 2024-04-12T00:05:27.649Z (about 1 year ago)
- Topics: apitoolkit, apitoolkit-sdk, dotnet
- Language: C#
- Homepage:
- Size: 80.1 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

## .NET Core SDK
[](https://github.com/topics/apitoolkit-sdk) [](https://apitoolkit.io/discord?utm_campaign=devrel&utm_medium=github&utm_source=sdks_readme) [](https://apitoolkit.io/docs/sdks/dotnet/dotnetcore?utm_campaign=devrel&utm_medium=github&utm_source=sdks_readme) [](https://github.com/apitoolkit/apitoolkit-dotnet1/actions?query=workflow%3ACI) [](https://nuget.org/packages/ApiToolkit.Net) [](https://nuget.org/packages/ApiToolkit.Net)
APIToolkit .NET SDK is a middleware that can be used to monitor HTTP requests. It is provides additional functionalities on top of the open telemetry instrumentation which creates a custom span for each request capturing details about the request including request, response bodies errors and outgoing requests.
---
## Table of Contents
- [Installation](#installation)
- [Setup OpenTelemetry](#setup-opentelemetry)
- [APItoolkit SDK Configuration](#sdk-configuration)
- [Contributing and Help](#contributing-and-help)
- [License](#license)---
## Installation
Kindly run the command below to install the package:
```sh
dotnet add package ApiToolkit.Net
```## Setup OpenTelemetry
Run the following command to install the OpenTelemetry auto instrumentation for .NET:
```sh
# Download the bash script
curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O# Install core files
sh ./otel-dotnet-auto-install.sh# Enable execution for the instrumentation script
chmod +x $HOME/.otel-dotnet-auto/instrument.sh# Setup the instrumentation for the current shell session
. $HOME/.otel-dotnet-auto/instrument.sh
```#### OpenTelemetry Configuration
After installating .NET autoinstrumentation packages, you can configure the OpenTelemetry instrumentation by setting the following environment variables:
```sh
export OTEL_EXPORTER_OTLP_ENDPOINT="http://otelcol.apitoolkit.io:4317" # Specifies the endpoint to send the traces to.
export OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES="APItoolkit.HTTPInstrumentation" # The apitoolkit instrumentation activity resource.
export OTEL_SERVICE_NAME="my-service" # Specifies the name of the service.
export OTEL_RESOURCE_ATTRIBUTES="at-project-key={ENTER_YOUR_API_KEY_HERE}" # Adds your API KEY to the resource.
export OTEL_EXPORTER_OTLP_PROTOCOL="grpc" # Specifies the protocol to use for the OpenTelemetry exporter.
```After setting the environment variables, build and run your application and you should see the logs, traces and metrics in the APIToolkit dashboard.
## SDK Configuration
The SDK allows you to capture the request and response bodies, errors, outgoing requests and more.
eg:
```csharp
using ApiToolkit.Net;// Initialize the APItoolkit client
var config = new Config
{
Debug = false,
Tags = new List { "environment: production", "region: us-east-1" },
ServiceVersion: "v2.0",
};
var client = await APIToolkit.NewClient(config);
// END Initialize the APItoolkit client
// Register the middleware to use the initialized client
app.Use(async (context, next) =>
{
var apiToolkit = new APIToolkit(next, client);
await apiToolkit.InvokeAsync(context);
});# app.UseEndpoint(..)
# other middleware and logic
# ...
```> [!NOTE]
>
> - Please make sure the APItoolkit middleware is added before `UseEndpoint` and other middleware are initialized.
> - The `{ENTER_YOUR_API_KEY_HERE}` demo string should be replaced with the [API key](https://apitoolkit.io/docs/dashboard/settings-pages/api-keys?utm_campaign=devrel&utm_medium=github&utm_source=sdks_readme) generated from the APItoolkit dashboard.
> [!IMPORTANT]
>
> To learn more configuration options (redacting fields, error reporting, outgoing requests, etc.), please read this [SDK documentation](https://apitoolkit.io/docs/sdks/dotnet/dotnetcore?utm_campaign=devrel&utm_medium=github&utm_source=sdks_readme).## Contributing and Help
To contribute to the development of this SDK or request help from the community and our team, kindly do any of the following:
- Read our [Contributors Guide](https://github.com/apitoolkit/.github/blob/main/CONTRIBUTING.md).
- Join our community [Discord Server](https://apitoolkit.io/discord?utm_campaign=devrel&utm_medium=github&utm_source=sdks_readme).
- Create a [new issue](https://github.com/apitoolkit/apitoolkit-dotnet/issues/new/choose) in this repository.## License
This repository is published under the [MIT](LICENSE) license.
---