Go Micro · Schema
Go Micro Service Definition
JSON Schema representing a Go Micro service definition, including service metadata, endpoint registration, and node information as exposed via the registry.
Distributed SystemsFrameworksGoGolangMicroservicesRPCService Discovery
Properties
| Name | Type | Description |
|---|---|---|
| name | string | Unique service name used for discovery and routing. |
| version | string | Service version string. |
| metadata | object | Custom key-value metadata for the service. |
| endpoints | array | List of RPC endpoints exposed by the service. |
| nodes | array | Registered nodes running this service. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/api-evangelist/go-micro/json-schema/go-micro-service.json",
"title": "Go Micro Service Definition",
"description": "JSON Schema representing a Go Micro service definition, including service metadata, endpoint registration, and node information as exposed via the registry.",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Unique service name used for discovery and routing."
},
"version": {
"type": "string",
"description": "Service version string."
},
"metadata": {
"type": "object",
"description": "Custom key-value metadata for the service.",
"additionalProperties": {
"type": "string"
}
},
"endpoints": {
"type": "array",
"description": "List of RPC endpoints exposed by the service.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Fully qualified endpoint name (e.g., Greeter.Hello)."
},
"request": {
"type": "object",
"description": "Request type information.",
"properties": {
"name": {
"type": "string",
"description": "Request message type name."
},
"type": {
"type": "string",
"description": "Request type (e.g., protobuf message name)."
}
},
"additionalProperties": true
},
"response": {
"type": "object",
"description": "Response type information.",
"properties": {
"name": {
"type": "string",
"description": "Response message type name."
},
"type": {
"type": "string",
"description": "Response type (e.g., protobuf message name)."
}
},
"additionalProperties": true
},
"metadata": {
"type": "object",
"description": "Endpoint metadata (e.g., stream, subscriber info).",
"additionalProperties": {
"type": "string"
}
}
},
"required": ["name"],
"additionalProperties": true
}
},
"nodes": {
"type": "array",
"description": "Registered nodes running this service.",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique node identifier."
},
"address": {
"type": "string",
"description": "Node address (host:port)."
},
"metadata": {
"type": "object",
"description": "Node-level metadata (e.g., transport, broker, protocol).",
"additionalProperties": {
"type": "string"
}
}
},
"required": ["id", "address"],
"additionalProperties": true
}
}
},
"required": ["name"],
"additionalProperties": true
}