Refitter · Schema

Refitter Settings

Schema for the .refitter configuration file that controls how Refitter generates Refit HTTP client interfaces from OpenAPI specifications.

.NETC#Code GenerationOpenAPIRefitSource GeneratorType-Safe

Properties

Name Type Description
openApiPath string Path or URL to the OpenAPI specification file. Supports local file paths and HTTP(S) URLs.
namespace string The C# namespace for generated code.
naming object Naming convention configuration for generated types.
outputFolder string Output folder for generated files.
outputFilename string Name of the generated output file.
returnIApiResponse boolean When true, generated methods return IApiResponse for access to response metadata.
generateContracts boolean Whether to generate contract model classes alongside the Refit interfaces.
generateXmlDocCodeComments boolean Whether to include XML documentation comments on generated members.
addAutoGeneratedHeader boolean Add an auto-generated code header comment to output files.
addAcceptHeaders boolean Add Accept headers to GET methods.
useCancellationTokens boolean Include CancellationToken parameters in generated methods.
typeStyle string Code style for generated types.
contractsOutputFolder string Separate output folder for generated contract/model classes.
multipleInterfaces string Strategy for splitting output into multiple interfaces.
includePathMatches array Regex patterns for API paths to include in generation.
excludePathMatches array Regex patterns for API paths to exclude from generation.
useDynamicQuerystringParameters boolean Use dynamic query string parameter objects.
generateDefaultAdditionalParameters boolean Generate default additional parameters.
View JSON Schema on GitHub

JSON Schema

refitter-settings-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://api-evangelist.github.io/refitter/json-schema/refitter-settings-schema.json",
  "title": "Refitter Settings",
  "description": "Schema for the .refitter configuration file that controls how Refitter generates Refit HTTP client interfaces from OpenAPI specifications.",
  "type": "object",
  "properties": {
    "openApiPath": {
      "type": "string",
      "description": "Path or URL to the OpenAPI specification file. Supports local file paths and HTTP(S) URLs.",
      "examples": [
        "./openapi.json",
        "https://petstore.swagger.io/v2/swagger.json"
      ]
    },
    "namespace": {
      "type": "string",
      "description": "The C# namespace for generated code.",
      "default": "GeneratedCode",
      "examples": ["MyCompany.Api.Client"]
    },
    "naming": {
      "type": "object",
      "description": "Naming convention configuration for generated types.",
      "properties": {
        "useOpenApiTitle": {
          "type": "boolean",
          "description": "Use the OpenAPI title as the namespace when true.",
          "default": false
        },
        "interfaceName": {
          "type": "string",
          "description": "Name for the generated interface.",
          "default": "IApiClient"
        }
      }
    },
    "outputFolder": {
      "type": "string",
      "description": "Output folder for generated files.",
      "default": "./Generated"
    },
    "outputFilename": {
      "type": "string",
      "description": "Name of the generated output file.",
      "default": "RefitInterfaces.cs"
    },
    "returnIApiResponse": {
      "type": "boolean",
      "description": "When true, generated methods return IApiResponse<T> for access to response metadata.",
      "default": false
    },
    "generateContracts": {
      "type": "boolean",
      "description": "Whether to generate contract model classes alongside the Refit interfaces.",
      "default": true
    },
    "generateXmlDocCodeComments": {
      "type": "boolean",
      "description": "Whether to include XML documentation comments on generated members.",
      "default": true
    },
    "addAutoGeneratedHeader": {
      "type": "boolean",
      "description": "Add an auto-generated code header comment to output files.",
      "default": true
    },
    "addAcceptHeaders": {
      "type": "boolean",
      "description": "Add Accept headers to GET methods.",
      "default": true
    },
    "useCancellationTokens": {
      "type": "boolean",
      "description": "Include CancellationToken parameters in generated methods.",
      "default": false
    },
    "typeStyle": {
      "type": "string",
      "description": "Code style for generated types.",
      "enum": ["Classes", "Records", "RecordsStruct"],
      "default": "Classes"
    },
    "contractsOutputFolder": {
      "type": "string",
      "description": "Separate output folder for generated contract/model classes."
    },
    "multipleInterfaces": {
      "type": "string",
      "description": "Strategy for splitting output into multiple interfaces.",
      "enum": ["Unset", "ByEndpoint", "ByTag"]
    },
    "includePathMatches": {
      "type": "array",
      "description": "Regex patterns for API paths to include in generation.",
      "items": {
        "type": "string"
      }
    },
    "excludePathMatches": {
      "type": "array",
      "description": "Regex patterns for API paths to exclude from generation.",
      "items": {
        "type": "string"
      }
    },
    "useDynamicQuerystringParameters": {
      "type": "boolean",
      "description": "Use dynamic query string parameter objects.",
      "default": false
    },
    "generateDefaultAdditionalParameters": {
      "type": "boolean",
      "description": "Generate default additional parameters.",
      "default": false
    }
  },
  "required": ["openApiPath"]
}