Kroki.DependencyInjection
2.2.2
dotnet add package Kroki.DependencyInjection --version 2.2.2
NuGet\Install-Package Kroki.DependencyInjection -Version 2.2.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Kroki.DependencyInjection" Version="2.2.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kroki.DependencyInjection" Version="2.2.2" />
<PackageReference Include="Kroki.DependencyInjection" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Kroki.DependencyInjection --version 2.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Kroki.DependencyInjection, 2.2.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Kroki.DependencyInjection&version=2.2.2
#tool nuget:?package=Kroki.DependencyInjection&version=2.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Kroki integration for .NET
Kroki Client
Getting started
Add KrokiHttpRequestFactory
to services.
builder.Services.AddKrokiHttpRequestFactory();
Or just create KrokiHttpRequestFactory
directly.
KrokiHttpRequestFactory krokiHttpRequestFactory = new();
KrokiHttpRequestFactory myHostedKrokiHttpRequestFactory = new(new Uri("https://my-hosted-kroki.io"));
How to use
@using global::Kroki
@using System.IO.Compression
@inject KrokiHttpRequestFactory KrokiHttpRequestFactory
<img src="@imageSrc" />
@code {
[Parameter, EditorRequired]
public required string DiagramType { get; set; }
[Parameter, EditorRequired]
public required string DiagramSource { get; set; }
string imageSrc = "";
protected override void OnParametersSet()
{
imageSrc = KrokiHttpRequestFactory.CreateGetRequestUri(new()
{
DiagramType = DiagramType,
OutputFormat = FileFormat.Svg,
DiagramSource = DiagramSource
}, CompressionLevel.Optimal).AbsoluteUri;
}
}
Kroki Server Hosting
Getting started
var kroki = builder.AddKrokiServer("kroki")
.WithKrokiMermaidServer()
.WithKrokiBpmnServer()
.WithKrokiExcalidrawServer()
.WithKrokiDiagramsNetServer();
var webFrontend = builder.AddProject<Projects.Web>("web-frontend")
.WithExternalHttpEndpoints()
.WithReference(kroki)
How to use
Forward to Kroki server in your frontend project.
using Yarp.ReverseProxy.Forwarder;
using Yarp.ReverseProxy.Transforms;
public static IEndpointConventionBuilder MapKrokiForwarder(this IEndpointRouteBuilder endpoints)
{
return endpoints.MapForwarder("/Kroki/{**apiPath}", "http://kroki", ForwarderRequestConfig.Empty,
transformBuilderContext
=> transformBuilderContext
.AddPathRemovePrefix("/Kroki")
// Custom authorization logic!
.AddRequestTransform(transformContext =>
{
HttpContext httpContext = transformContext.HttpContext;
if(httpContext.User.Identity?.IsAuthenticated != true)
{
httpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;
}
return new();
}));
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Kroki (>= 2.2.2)
- Microsoft.Extensions.Options (>= 9.0.4)
-
net9.0
- Kroki (>= 2.2.2)
- Microsoft.Extensions.Options (>= 9.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.