Lattice Hub Docs
HTTP OpenAPI

Client APIs

Discover, Register, Heartbeat, and client config pull.

Discover, Register, Heartbeat, and client config pull.

Default Base URL: http://127.0.0.1:8090. Management APIs require Authorization (token from login).

Client APIs

Client Discover / Register / Heartbeat and config pull under /v1. Prefer gRPC in production.

POST/v1/Discover

Discover

Pull instance or governance views.

  • typebody · stringrequired

    Discover type: INSTANCE / ROUTING / RATE_LIMIT / CIRCUIT_BREAKER / SERVICES / FAULT_DETECTOR / SERVICE_CONTRACTS / NAMESPACES, etc.

  • service.namebody · stringrequired

    Service name (required by most types).

  • service.namespacebody · stringrequired

    Namespace.

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/Discover' \
  -H 'Content-Type: application/json' \
  -d '{"type":"INSTANCE","service":{"name":"payment","namespace":"default"}}'
Response example
{
  "code": 200000,
  "info": "execute success",
  "instances": [{ "host": "10.0.0.8", "port": 8080, "healthy": true }]
}
POST/v1/RegisterInstance

Register instance

Client registration; body is a single Instance (not an array).

  • servicebody · stringrequired

    Service name.

  • namespacebody · stringrequired

    Namespace.

  • hostbody · stringrequired

    Host.

  • portbody · uint32required

    Port.

  • protocolbody · stringoptional

    Protocol.

  • versionbody · stringoptional

    Version.

  • prioritybody · uint32optional

    Priority.

  • weightbody · uint32optional

    Weight (often 100).

  • healthybody · booloptional

    Healthy.

  • isolatebody · booloptional

    Isolated.

  • enable_health_checkbody · booloptional

    Enable health check.

  • health_checkbody · HealthCheckoptional

    Health-check config (heartbeat/tcp/http).

  • locationbody · Locationoptional

    Location.

  • metadatabody · map<string,string>optional

    Metadata / labels.

  • idbody · stringoptional

    Instance ID (update/delete).

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/RegisterInstance' \
  -H 'Content-Type: application/json' \
  -d '{"service":"payment","namespace":"default","host":"10.0.0.8","port":8080,"weight":100}'
Response example
{
  "code": 200000,
  "info": "execute success",
  "instance": { "id": "..." }
}
POST/v1/DeregisterInstance

Deregister instance

Client deregistration.

  • idbody · stringoptional

    Instance ID.

  • servicebody · stringrequired

    Service name.

  • namespacebody · stringrequired

    Namespace.

  • hostbody · stringrequired

    Host.

  • portbody · uint32required

    Port.

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/DeregisterInstance' \
  -H 'Content-Type: application/json' \
  -d '{"service":"payment","namespace":"default","host":"10.0.0.8","port":8080}'
Response example
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
POST/v1/Heartbeat

Heartbeat

Instance heartbeat.

  • idbody · stringoptional

    Instance ID.

  • servicebody · stringrequired

    Service name.

  • namespacebody · stringrequired

    Namespace.

  • hostbody · stringrequired

    Host.

  • portbody · uint32required

    Port.

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/Heartbeat' \
  -H 'Content-Type: application/json' \
  -d '{"service":"payment","namespace":"default","host":"10.0.0.8","port":8080}'
Response example
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
POST/v1/ReportClient

Report client

Report client information.

  • hostbody · stringoptional

    Host.

  • versionbody · stringoptional

    Client version.

  • typebody · stringoptional

    Client type.

  • locationbody · objectoptional

    Location.

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/ReportClient' \
  -H 'Content-Type: application/json' \
  -d '{"host":"10.0.0.3","version":"1.2.0"}'
Response example
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
GET/v1/GetConfigFile

Client get config file

tags are key=value and repeatable; unmatched clients fall back to normal. Enrich documents version but the handler does not use it.

  • namespacequery · stringrequired

    Namespace.

  • groupquery · stringrequired

    Group.

  • fileNamequery · stringrequired

    File name.

  • tagsquery · stringoptional

    Client tags such as env=gray-a; repeatable.

Request
curl -sS 'http://127.0.0.1:8090/v1/GetConfigFile?namespace=default&group=docs-multi-gray&fileName=app.yaml&tags=env%3Dgray-a'
Response example
{
  "code": 200000,
  "info": "execute success",
  "file": { "name": "app.yaml", "release_type": "gray", "content": "mode: gray-a\n" }
}
POST/v1/ConfigDiscover

ConfigDiscover

Config discover / subscribe-style request.

  • typebody · stringrequired

    Discover type.

  • filebody · objectoptional

    Config file locator.

  • revisionbody · stringoptional

    Revision.

  • filterbody · objectoptional

    Filter.

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/ConfigDiscover' \
  -H 'Content-Type: application/json' \
  -d '{"type":"CONFIG_FILE","file":{"namespace":"default","group":"docs-multi-gray","name":"app.yaml"}}'
Response example
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
POST/v1/GetConfigFileMetadataList

Get config file metadata list

Get config file metadata list.

  • namespacebody · stringoptional

    命名空间。

  • groupbody · stringoptional

    分组。

  • codebody · uint32required

    Business code.

  • infobody · stringoptional

    Info.

  • ConfigClientRequestbody · ConfigClientRequestoptional

    Entity fields.

    • namespacebody · stringoptional

      命名空间。

    • groupbody · stringoptional

      分组。

    • revisionbody · stringoptional

      修订版本。

Request
curl -sS -X POST 'http://127.0.0.1:8090/v1/GetConfigFileMetadataList' \
  -H 'Content-Type: application/json' \
  -d '[]'
Response example
{
  "code": 200000,
  "info": "execute success"
}

On this page