MVFC.Aspire.Hosting.WireMock
1.0.10
dotnet add package MVFC.Aspire.Hosting.WireMock --version 1.0.10
NuGet\Install-Package MVFC.Aspire.Hosting.WireMock -Version 1.0.10
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="MVFC.Aspire.Hosting.WireMock" Version="1.0.10" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MVFC.Aspire.Hosting.WireMock" Version="1.0.10" />
<PackageReference Include="MVFC.Aspire.Hosting.WireMock" />
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 MVFC.Aspire.Hosting.WireMock --version 1.0.10
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MVFC.Aspire.Hosting.WireMock, 1.0.10"
#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.
#:package MVFC.Aspire.Hosting.WireMock@1.0.10
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MVFC.Aspire.Hosting.WireMock&version=1.0.10
#tool nuget:?package=MVFC.Aspire.Hosting.WireMock&version=1.0.10
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MVFC.Aspire.Hosting.WireMock
Visão Geral
Esta biblioteca permite integrar facilmente o WireMock.Net como recurso de mock de APIs em aplicações utilizando o Aspire.Hosting (.NET 9). Ela facilita o provisionamento, ciclo de vida e exposição de endpoints WireMock em ambientes de desenvolvimento, testes e integração.
Principais Funcionalidades
- Adiciona recursos WireMock à aplicação Aspire com ciclo de vida gerenciado.
- Permite configuração personalizada do servidor WireMock.
- Expõe endpoints HTTP mockados para testes e integração.
- Publica eventos de estado e logs do recurso.
Instalação
Adicione o pacote NuGet ao seu projeto:
dotnet add package MVFC.Aspire.Hosting.WireMock
Certifique-se de que seu projeto está utilizando o Aspire.Hosting (>= 9.5.1) e WireMock.Net (>= 1.14.0).
Como Usar
Exemplo real do AppHost
var builder = DistributedApplication.CreateBuilder(args);
var wireMock = builder.AddWireMock("wireMock", port: 8080, configure: (server) =>
{
server.Endpoint("/api/echo")
.WithDefaultBodyType(BodyType.String)
.OnPost<string, string>(body => ($"Echo: {body}", HttpStatusCode.Created, null));
server.Endpoint("/api/test")
.WithDefaultBodyType(BodyType.String)
.OnGet<string>(() => ("Aspire GET OK", HttpStatusCode.OK, null));
server.Endpoint("/api/secure")
.RequireBearer("mytoken", "Unauthorized", BodyType.String)
.OnGet(() => ("Secret Data", HttpStatusCode.OK, BodyType.String));
server.Endpoint("/api/put")
.WithDefaultBodyType(BodyType.String)
.OnPut<string, string>(req => ($"Echo: {req}", HttpStatusCode.Accepted, BodyType.String));
server.Endpoint("/api/customauth")
.WithDefaultErrorStatusCode(HttpStatusCode.Forbidden)
.RequireCustomAuth(req => (req.Headers!.ContainsKey("X-Test"), "Forbidden", BodyType.String))
.OnGet(() => ("Authorized", HttpStatusCode.OK, BodyType.String));
server.Endpoint("/api/headers")
.WithResponseHeaders(new() { { "X-Test", ["v1", "v2"] } })
.WithResponseHeader("X-Other", "v3")
.OnGet(() => ("Headers OK", HttpStatusCode.OK, BodyType.String));
server.Endpoint("/api/error")
.WithRequestBodyType(BodyType.String)
.WithDefaultErrorStatusCode((HttpStatusCode)418)
.OnGet(() => ("I am a teapot", (HttpStatusCode)418, BodyType.String));
server.Endpoint("/api/delete")
.WithResponseBodyType(BodyType.String)
.WithResponseHeader("v1", "v1")
.WithResponseHeaders(new() { { "v1", ["v2", "v3"] } })
.WithResponseHeader("v1", "v4")
.OnDelete<string>(() => (null!, HttpStatusCode.NoContent, null));
server.Endpoint("/api/form")
.WithDefaultBodyType(BodyType.FormUrlEncoded)
.OnPost<Dictionary<string, string>, IDictionary<string, string>>(body => (body, HttpStatusCode.OK, BodyType.FormUrlEncoded));
server.Endpoint("/api/form-wrong")
.WithDefaultBodyType(BodyType.FormUrlEncoded)
.OnPost<string, string>(body => (body, HttpStatusCode.OK, BodyType.FormUrlEncoded));
server.Endpoint("/api/patch")
.WithDefaultBodyType(BodyType.String)
.OnPatch<string, string>(body => ($"Patched: {body}", HttpStatusCode.OK, BodyType.String));
server.Endpoint("/api/bytes")
.WithDefaultBodyType(BodyType.Bytes)
.OnPost<byte[], byte[]>(body => (body, HttpStatusCode.OK, BodyType.Bytes));
server.Endpoint("/api/unsupported")
.WithDefaultBodyType((BodyType)999)
.OnPost<string, string>(_ => ("Not Supported", HttpStatusCode.NotImplemented, null));
server.Endpoint("/api/json")
.WithDefaultBodyType(BodyType.Json)
.OnPost<JsonModel, JsonModel>(body => (body, HttpStatusCode.OK, BodyType.Json));
});
await builder.Build().RunAsync();
Requisitos
- .NET 9+
- Aspire.Hosting >= 9.5.1
- WireMock.Net >= 1.14.0
Licença
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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.
-
net9.0
- Aspire.Hosting (>= 9.5.1)
- WireMock.Net.minimal (>= 1.14.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.