Raycynix.Extensions.Messaging.HttpJson
3.1.0
dotnet add package Raycynix.Extensions.Messaging.HttpJson --version 3.1.0
NuGet\Install-Package Raycynix.Extensions.Messaging.HttpJson -Version 3.1.0
<PackageReference Include="Raycynix.Extensions.Messaging.HttpJson" Version="3.1.0" />
<PackageVersion Include="Raycynix.Extensions.Messaging.HttpJson" Version="3.1.0" />
<PackageReference Include="Raycynix.Extensions.Messaging.HttpJson" />
paket add Raycynix.Extensions.Messaging.HttpJson --version 3.1.0
#r "nuget: Raycynix.Extensions.Messaging.HttpJson, 3.1.0"
#:package Raycynix.Extensions.Messaging.HttpJson@3.1.0
#addin nuget:?package=Raycynix.Extensions.Messaging.HttpJson&version=3.1.0
#tool nuget:?package=Raycynix.Extensions.Messaging.HttpJson&version=3.1.0
Raycynix.Extensions.Messaging.HttpJson
This package follows the shared version in Directory.Build.props. See CHANGELOG.md for release history.
Raycynix.Extensions.Messaging.HttpJson contains the direct HTTP JSON transport for Raycynix messaging.
What it contains
AddHttpJson(...)HttpJsonMessagingConfigurationIHttpJsonRequestClient- HTTP request/response transport over
HttpClient - JSON serialization through the shared
Newtonsoft.Jsoncodec fromRaycynix.Extensions.Messaging
What it does not contain
- broker integration
- background consumers
- API gateway features
Usage
Example appsettings.json:
{
"HttpJsonMessagingConfiguration": {
"BaseAddress": "https://catalog-service",
"TimeoutSeconds": 30
}
}
Register the transport:
builder.Services.AddRaycynixMessaging(builder.Configuration)
.AddHttpJson(builder.Configuration);
Send a direct request:
public class CatalogClient(
IRequestEnvelopeFactory envelopeFactory,
IHttpJsonRequestClient requestClient)
{
public async Task<CatalogItemResponse> GetItemAsync(string sku, CancellationToken cancellationToken)
{
var request = envelopeFactory.Create(
new CatalogItemRequest(sku),
destination: "/api/catalog/items/get",
format: MessageFormat.Json);
var response = await requestClient.SendAsync<CatalogItemRequest, CatalogItemResponse>(
request,
cancellationToken);
return response.Response;
}
}
Notes:
destinationis used as the relative request path- payload serialization uses the shared
Newtonsoft.Jsoncodec fromRaycynix.Extensions.Messaging - contract, correlation, trace, and security headers are propagated automatically
Logging
The HTTP JSON transport uses optional Microsoft ILogger<T> diagnostics when logging is registered in the application. No Raycynix logging provider is required.
Diagnostics cover request send/receive status, inbound processing, mapped failure statuses, and handler lookup failures. Request and response payloads, header values, and authorization data are not logged.
Migrating From 2.x
Version 3.0 targets .NET 10 and depends on Raycynix.Extensions.Messaging 3.0. Existing registration and request APIs remain compatible.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Raycynix.Extensions.Messaging (>= 3.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Raycynix.Extensions 3.1.0. All packages inherit the shared version from Directory.Build.props. See https://github.com/raycynix/Raycynix.Extensions/blob/HEAD/src/Raycynix.Extensions.Messaging.HttpJson/CHANGELOG.md for package-specific changes and https://github.com/raycynix/Raycynix.Extensions/blob/HEAD/CHANGELOG.md for the release overview.