API Reference JsonConstants - ulfbou/Zentient.Results GitHub Wiki
๐ API Reference: static class โ JsonConstants
Namespace:
Zentient.Results.ConstantsAssembly:Zentient.Results.dllAvailable since:v0.1.0
๐ Summary
Provides internal JSON field name constants used during serialization and deserialization of IResult and ErrorInfo types.
JsonConstantsensure consistency, compactness, and forward compatibility in transport-agnostic serialization across HTTP, gRPC, and messaging layers.
๐ก Design Philosophy / Rationale
The Zentient Framework uses System.Text.Json (and optionally Newtonsoft.Json) to serialize result types across multiple protocols and observability layers. JsonConstants:
- ๐ Ensure string consistency in field names across all serializers.
- ๐งฉ Enable protocol interoperability with external clients that rely on specific contract shapes (e.g., OpenAPI).
- โ๏ธ Facilitate unit test stability by avoiding magic strings in serialization snapshots.
- ๐งผ Prevent typo-prone literals in adapters and filters.
These constants serve as a single point of truth for serializers, de/serializers, and custom converters.
๐ Type Signature
internal static class JsonConstants
๐ Members
๐ธ JsonConstants.ErrorInfo
| Field Name | Constant Value | Description |
|---|---|---|
Category |
"category" |
Category of the error (e.g., Validation, Exception). |
Code |
"code" |
Machine-readable code (e.g., VALIDATION_ERROR, INTERNAL_SERVER_ERROR). |
Message |
"message" |
Human-readable message. |
Detail |
"detail" |
Extended detail or explanation. Optional. |
Metadata |
"metadata" |
Dictionary of metadata for diagnostics. |
Extensions |
"extensions" |
Arbitrary consumer extensions (optional, dynamic). |
InnerErrors |
"innererrors" |
Nested error list for composite failures. |
๐น JsonConstants.Result
| Field Name | Constant Value | Description |
|---|---|---|
Value |
"value" |
Serialized value (only present in generic results). |
Status |
"status" |
Semantic status string or code (e.g., ValidationFailed, 404). |
Messages |
"messages" |
Diagnostic trace messages, hints, or logs. |
Errors |
"errors" |
List of structured ErrorInfo objects. |
IsSuccess |
"isSuccess" |
Boolean flag indicating a successful result. |
IsFailure |
"isFailure" |
Boolean flag indicating a failed result. |
ErrorMessage |
"errorMessage" |
Shortcut to the primary errorโs Message, often for display/logging purposes. |
๐งช Usage Examples
// Custom System.Text.Json contract resolver or property naming policy
var property = JsonConstants.Result.Errors; // yields "errors"
var errorField = JsonConstants.ErrorInfo.Code; // yields "code"
// Manually constructing a serialized result (e.g., for ProblemDetails fallback)
var json = new Dictionary<string, object?>
{
[JsonConstants.Result.IsSuccess] = false,
[JsonConstants.Result.Errors] = errorList,
[JsonConstants.Result.Status] = "ValidationFailed",
[JsonConstants.Result.Messages] = new[] { "Input is invalid." }
};
โ ๏ธ Remarks
- This class is marked
internalby designโintended only for serialization infrastructure within the Zentient Framework. - Consumers should not depend on these constants unless implementing low-level serializers or adapters.
- All field names are lowerCamelCase to align with common JSON conventions and OpenAPI/GraphQL expectations.
- Any public wrapper (e.g., in
Zentient.Endpoints.Http) may re-export these names for API contracts or filters.
๐งฉ Integration and Interoperability
| Module / Layer | Role |
|---|---|
System.Text.Json |
Main consumer for serialization of Result<T> and ErrorInfo. |
Zentient.Endpoints.Http |
Serializes results into ProblemDetails-compatible JSON. |
Zentient.Telemetry |
Captures and parses serialized trace fields. |
GrpcResultAdapter |
Uses constants to map JSON fields into binary metadata. |
๐ See Also
๐ท๏ธ Tags
#API #Constants #Serialization #SystemTextJson #Internal #TransportContracts #ZentientCore
Last Updated: 2025-06-22 Version: 0.4.0