NetLife Guru

Open source Go packages for fast, maintainable web systems. Built with a documentation-first approach.

Product
OverviewGolang packagesNews
Documentation
DocumentationGo LoggerGo RouterGo DB Form
Company
OverviewContactNewsGitHub
Community / Support
Supportinfo@netlife.guru
© 2026 NetLife Guru. All rights reserved.
GitHubinfo@netlife.guru
NetLife GuruNetLife GuruNetLife Guru
NetLife GuruNetLife GuruNetLife Guru
OverviewDocumentationNewsSupportContact

Golang packages

About
HTTP ResponsesResponse Customization
Form ValidatorHTTP validation

Response Customization

Learn how to customize validation responses in NLG Form using custom messages, unique error codes, and configurable HTTP validation response options.

The httpform package provides configurable response options for APIs that require standardized validation responses across frontend applications, backend services, or distributed systems.

Response customization is handled through:

httpform.ResponseOptions

This allows validation handlers to control:

  • validation messages
  • invalid JSON messages
  • response formatting
  • unique validation error codes

ResponseOptions

Example:

opts := httpform.ResponseOptions{
	ErrorFormat:        httpform.ErrorFormatMap,
	ValidationMessage:  "please check your input",
	InvalidJSONMessage: "request body is not valid JSON",
	UniqueCodes:        true,
}

Custom Validation Messages

Custom validation messages override the default top-level validation response.

Example:

ValidationMessage: "please check your input"

Response example:

{
  "message": "please check your input",
  "errors": {
    "email": [
      {
        "code": "email_invalid",
        "message": "must be a valid email"
      }
    ]
  }
}

This is useful for:

  • API consistency
  • frontend integrations
  • localization pipelines
  • standardized service responses

Invalid JSON Messages

The InvalidJSONMessage option customizes malformed JSON responses.

Example:

InvalidJSONMessage: "request body is not valid JSON"

This separates:

  • parsing errors
  • validation errors
  • successful requests

while keeping response contracts consistent.

Unique Error Codes

Validation rules may generate duplicate error codes for a single field.

Example:

UniqueCodes: true

When enabled, duplicate validation codes are automatically removed from the response.

This is useful for:

  • frontend validation rendering
  • API response normalization
  • validation aggregation
  • simplified error handling

Complete Example

opts := httpform.ResponseOptions{
	ErrorFormat:        httpform.ErrorFormatMap,
	ValidationMessage:  "please check your input",
	InvalidJSONMessage: "request body is not valid JSON",
	UniqueCodes:        true,
}

if !httpform.BindAndValidateWithOptions(
	w,
	req,
	&in,
	ResponseExampleSchema(),
	1<<20,
	opts,
) {
	return
}

Response customization allows APIs to standardize validation behavior while keeping validation schemas reusable and transport-independent.

Notes

  • ResponseOptions only affects HTTP response formatting and does not modify schema validation behavior.
  • Validation schemas remain reusable independently of HTTP transport and response serialization.
  • UniqueCodes removes duplicated validation codes per field but preserves the original validation execution order.
  • BindAndValidateWithOptions is typically used in APIs that require consistent response contracts across multiple services or frontend applications.
  • Validation helpers automatically write the HTTP response and should generally return immediately after validation failure.
  • Response customization is transport-level behavior and should remain separate from business validation logic whenever possible.

HTTP Responses

Learn how NLG Form binds and validates HTTP JSON requests and returns structured validation responses using map responses, flat responses, custom messages, invalid JSON handling, and unique error codes.

Validation Rules

Learn how validation rules work in NLG Form using reusable, composable, type-safe rule pipelines for strings, numbers, booleans, slices, formats, and cross-field validation.

On this page

ResponseOptionsCustom Validation MessagesInvalid JSON MessagesUnique Error CodesComplete ExampleNotes