ASP.NET Core
Enlace.AspNetCore, published from get-enlace/enlace-dotnet.
Install
dotnet add package Enlace.AspNetCore
Usage
// Program.cs
builder.Services.AddEnlace();
// ...
app.UseEnlace(); // mounts at /enlace by default
With a customized Swashbuckle route or a different spec source entirely:
builder.Services.AddEnlace(options =>
{
options.SpecUrl = "https://internal-host/custom/openapi.json";
options.MountPath = "/enlace"; // default
});
Spec resolution
- Zero-config default — if your app already runs Swashbuckle
conventionally, its spec is already served at
/swagger/v1/swagger.json; the adapter defaults to that path with no configuration needed. - Auto-detect fallback — if that doesn't resolve, it tries a short
list of other conventional paths (
/openapi.json,/swagger.json) with a plain HTTP request to your app's own server — no reflection into route tables or framework internals. - Explicit override — set
options.SpecUrlto point at anything else: a customized route, a different service's spec, a static file. - Failure is loud — if nothing resolves, startup fails with an error naming exactly what was tried and how to fix it, rather than rendering a silent empty canvas.
This package's job is intentionally small: it serves the canvas UI and resolves your OpenAPI document. Everything else — running a chain, mapping fields, credentials — happens in the browser; see Building a Chain.
Want to see it running end to end first? There's a working ASP.NET Core example app you can run locally.
Architecture
The ASP.NET Core adapter is intentionally thin: it serves the static UI assets and resolves your OpenAPI document. All workflow execution happens client-side in the browser directly to your API endpoints, with local IndexedDB autosave.