Skip to main content

Configuration

App Settings

The configuration for Mockaco can be easily customized using the appsettings*.json files located within the Settings folder. These files allow you to configure various options provided by ASP.NET Core.

Here are the different appsettings*.json files and their purposes:

  • appsettings.Production.json: Use this file to customize Mockaco when running it as an executable or dotnet tool.
  • appsettings.Docker.json: This file is specifically used to customize Mockaco when running in a Docker container.
  • appsettings.Development.json: When running Mockaco in debug mode, such as inside Visual Studio, you can use this file to customize its behavior. This environment is typically set through the launchSettings.json file.

These appsettings*.json files provide a convenient way to adjust Mockaco's settings based on the specific environment in which it is running.

To customize Mockaco, locate the appropriate appsettings*.json file based on your deployment scenario and modify the configuration options according to your requirements.

For instance you could override the default URLs Mockaco will listen to, just by changing the configuration like this:

{
"Urls": "http://+:8080;https://+:8443"
}

Environment variables

You can also use environment variables to override the configuration. For example, you can set the ASPNETCORE_URLS environment variable to http://+:8080;https://+:8443 to achieve the same result as the appsettings.json example.

Another way to set the configuration is through command line arguments.

Command line

To pass mockaco specific options through command line, you can use the --Mockaco prefix. For example, to set the DefaultHttpStatusCode to NotFound you can use the following command:

dotnet mockaco run --Mockaco:DefaultHttpStatusCode=NotFound

Please refer to the ASP.NET Core documentation for more information on how to customize the configuration.

Mockaco specific options are listed in the next topics.

Mockaco

{
"Mockaco": {
"DefaultHttpStatusCode": "OK",
"ErrorHttpStatusCode": "NotImplemented",
"DefaultHttpContentType": "application/json",
"References": [],
"Imports": [],
"MatchedRoutesCacheDuration": 60,
"MockacoEndpoint": "_mockaco",
"VerificationEndpointName": "verification"
}
}

DefaultHttpStatusCode

Set the default HTTP status code returned when the mock does not specify one.

Default: OK (200)

ErrorHttpStatusCode

Set the default HTTP status code in case there is no matching mock available.

Default: NotImplemented (501)

DefaultHttpContentType

Set the default HTTP Content-Type header response when the mock does not specify one.

Default: application/json

References

A list of additional references to other .NET assemblies to extend scripting engine.

Default: []

Imports

A list of additional namespaces to be imported and made available in scripting engine. It is the same as calling using in C#.

Default: []

MatchedRoutesCacheDuration

Set the cache duration in minutes to be used by the verification endpoint.

Default: 60

MockacoEndpoint

The exclusive endpoint to access internal features.

Default: _mockaco

VerificationEndpointName

The name of the verification endpoint.

Default: verification

TemplateFileProvider

Configure the mock template file provider.

Path

Define the mock template files path.

Default: Mocks

Serilog

Configure Serilog logger

Just as Mockaco options, to pass Serilog specific options through command line, you can use the --Serilog prefix. For example, to set the MinimumLevel to Information you can use the following command:

dotnet mockaco run --Serilog:MinimumLevel=Information