Lattice Hub 文档
HTTP OpenAPI服务

服务契约

服务契约查询与客户端上报。

服务契约查询与客户端上报。

默认 Base URL:http://127.0.0.1:8090。管理面接口需 Authorization(登录返回的 token)。

服务契约

契约查询与管理;客户端上报走 /v1/ReportServiceContract。

GET/naming/v1/service/contracts需要鉴权

查询服务契约

按服务查询契约(query 由 ParseQueryParams 解析)。

  • Authorizationheader · string必填

    登录返回的 token。

  • namespacequery · string可选

    命名空间。

  • servicequery · string可选

    服务名。

  • namequery · string可选

    契约名。

  • protocolquery · string可选

    协议。

  • versionquery · string可选

    版本。

  • limitquery · integer可选

    分页大小。

请求示例
curl -sS 'http://127.0.0.1:8090/naming/v1/service/contracts?namespace=default&service=payment' \
  -H "Authorization: $TOKEN"
响应示例
{
  "code": 200000,
  "info": "execute success",
  "data": [{ "name": "payment", "protocol": "http" }]
}
POST/naming/v1/service/contracts需要鉴权

创建服务契约

管理面创建契约;body 为 ServiceContract 数组。

  • Authorizationheader · string必填

    登录返回的 token。

  • namebody · string必填

    契约名 / 服务名相关标识。

  • namespacebody · string必填

    命名空间。

  • servicebody · string必填

    服务名。

  • protocolbody · string可选

    协议,如 http / grpc。

  • versionbody · string可选

    契约版本。

  • contentbody · string可选

    契约原文(可含 OpenAPI / proto)。

  • typebody · string可选

    契约类型。

  • interfacesbody · Interface[]可选

    接口列表。

  • metadatabody · map<string,string>可选

    元数据。

  • idbody · string可选

    契约 ID(删除等)。

请求示例
curl -sS -X POST 'http://127.0.0.1:8090/naming/v1/service/contracts' \
  -H "Authorization: $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '[{"name":"payment","namespace":"default","service":"payment","protocol":"http","content":"openapi: 3.0.3"}]'
响应示例
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
GET/naming/v1/service/contract/versions需要鉴权

查询契约版本

查询契约版本列表。

  • Authorizationheader · string必填

    登录返回的 token。

  • namespacequery · string可选

    命名空间。

  • servicequery · string可选

    服务名。

请求示例
curl -sS 'http://127.0.0.1:8090/naming/v1/service/contract/versions?namespace=default&service=payment' \
  -H "Authorization: $TOKEN"
响应示例
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
POST/v1/ReportServiceContract

上报服务契约

客户端上报契约(可含 OpenAPI 原文)。不是控制面自身 OpenAPI。

  • (body)body · ServiceContract[]必填

    请求体为 ServiceContract 的 JSON 数组:[{...}, ...]。下列字段为数组中单条对象的完整字段(含嵌套)。

  • idbody · string可选

    契约ID

  • namebody · string可选

    契约名称 deprecated, use type field

  • namespacebody · string可选

    所属命名空间

  • servicebody · string可选

    所属服务名称

  • protocolbody · string可选

    协议,http/grpc/dubbo/thrift

  • versionbody · string可选

    契约版本

  • contentbody · string可选

    额外描述

  • interfacesbody · InterfaceDescriptor[]可选

    interfaces

    • idbody · string可选

      接口ID

    • methodbody · string可选

      方法名称,对应 http method/ dubbo interface func/grpc service func

    • pathbody · string可选

      接口名称,http path/dubbo interface/grpc service

    • contentbody · string可选

      接口描述信息

    • sourcebody · enum(Source)可选

      创建来源 枚举:UNKNOWN

    • namebody · string可选

      接口名称描述信息 deprecated, use type field

    • namespacebody · string可选

      所属命名空间

    • servicebody · string可选

      所属服务名称

    • protocolbody · string可选

      协议,http/grpc/dubbo/thrift

    • versionbody · string可选

      契约版本

    • typebody · string可选

      类型

    • content_digestbody · string可选

      内容摘要

  • typebody · string可选

    类型

  • metadatabody · map<string,string>可选

    metadata

  • content_digestbody · string可选

    内容摘要

  • codebody · uint32必填

    业务码,成功多为 200000。

  • infobody · string可选

    提示信息。

  • serviceContractbody · ServiceContract可选

    返回中的 ServiceContract 实体字段(批量接口在 responses[] 内)。

    • idbody · string可选

      契约ID

    • namebody · string可选

      契约名称 deprecated, use type field

    • namespacebody · string可选

      所属命名空间

    • servicebody · string可选

      所属服务名称

    • protocolbody · string可选

      协议,http/grpc/dubbo/thrift

    • versionbody · string可选

      契约版本

    • revisionbody · string可选

      信息摘要

    • contentbody · string可选

      额外描述

    • interfacesbody · InterfaceDescriptor[]可选

      interfaces

      • idbody · string可选

        接口ID

      • methodbody · string可选

        方法名称,对应 http method/ dubbo interface func/grpc service func

      • pathbody · string可选

        接口名称,http path/dubbo interface/grpc service

      • contentbody · string可选

        接口描述信息

      • sourcebody · enum(Source)可选

        创建来源 枚举:UNKNOWN

      • revisionbody · string可选

        接口信息摘要

      • ctimebody · string可选

        创建时间

      • mtimebody · string可选

        更新时间

      • namebody · string可选

        接口名称描述信息 deprecated, use type field

      • namespacebody · string可选

        所属命名空间

      • servicebody · string可选

        所属服务名称

      • protocolbody · string可选

        协议,http/grpc/dubbo/thrift

      • versionbody · string可选

        契约版本

      • typebody · string可选

        类型

      • content_digestbody · string可选

        内容摘要

    • ctimebody · string可选

      创建时间

    • mtimebody · string可选

      更新时间

    • statusbody · string可选

      接口状态,Offline/Online

    • typebody · string可选

      类型

    • metadatabody · map<string,string>可选

      metadata

    • content_digestbody · string可选

      内容摘要

请求示例
curl -sS -X POST 'http://127.0.0.1:8090/v1/ReportServiceContract' \
  -H 'Content-Type: application/json' \
  -d '{"name":"payment","namespace":"default","service":"payment","protocol":"http","content":"openapi: 3.0.3"}'
响应示例
{
  "code": 200000,
  "info": "execute success",
  "amount": 1
}
POST/naming/v1/service/contracts/delete需要鉴权

删除服务契约

删除服务契约。

  • Authorizationheader · string必填

    登录返回的 token。

  • (body)body · ServiceContract[]必填

    请求体为 ServiceContract 的 JSON 数组;下列为单条字段。

  • idbody · string可选

    id

  • namebody · string可选

    name

  • namespacebody · string可选

    namespace

  • servicebody · string可选

    service

  • protocolbody · string可选

    protocol

  • versionbody · string可选

    version

  • contentbody · string可选

    content

  • interfacesbody · InterfaceDescriptor[]可选

    interfaces

    • idbody · string可选

      id

    • methodbody · string可选

      method

    • pathbody · string可选

      path

    • contentbody · string可选

      content

    • sourcebody · enum(Source)可选

      source 枚举:UNKNOWN

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • typebody · string可选

      type

    • content_digestbody · string可选

      content_digest

  • typebody · string可选

    type

  • metadatabody · map<string,string>可选

    metadata

  • content_digestbody · string可选

    content_digest

  • codebody · uint32必填

    业务码。

  • infobody · string可选

    提示信息。

  • ServiceContractbody · ServiceContract可选

    实体字段。

    • idbody · string可选

      id

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • revisionbody · string可选

      revision

    • contentbody · string可选

      content

    • interfacesbody · InterfaceDescriptor[]可选

      interfaces

      • idbody · string可选

        id

      • methodbody · string可选

        method

      • pathbody · string可选

        path

      • contentbody · string可选

        content

      • sourcebody · enum(Source)可选

        source 枚举:UNKNOWN

      • revisionbody · string可选

        revision

      • ctimebody · string可选

        ctime

      • mtimebody · string可选

        mtime

      • namebody · string可选

        name

      • namespacebody · string可选

        namespace

      • servicebody · string可选

        service

      • protocolbody · string可选

        protocol

      • versionbody · string可选

        version

      • typebody · string可选

        type

      • content_digestbody · string可选

        content_digest

    • ctimebody · string可选

      ctime

    • mtimebody · string可选

      mtime

    • statusbody · string可选

      status

    • typebody · string可选

      type

    • metadatabody · map<string,string>可选

      metadata

    • content_digestbody · string可选

      content_digest

请求示例
curl -sS -X POST 'http://127.0.0.1:8090/naming/v1/service/contracts/delete' \
  -H "Authorization: $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '[]'
响应示例
{
  "code": 200000,
  "info": "execute success"
}
POST/naming/v1/service/contract/methods需要鉴权

创建契约方法

创建契约方法。

  • Authorizationheader · string必填

    登录返回的 token。

  • idbody · string可选

    id

  • namebody · string可选

    name

  • namespacebody · string可选

    namespace

  • servicebody · string可选

    service

  • protocolbody · string可选

    protocol

  • versionbody · string可选

    version

  • contentbody · string可选

    content

  • interfacesbody · InterfaceDescriptor[]可选

    interfaces

    • idbody · string可选

      id

    • methodbody · string可选

      method

    • pathbody · string可选

      path

    • contentbody · string可选

      content

    • sourcebody · enum(Source)可选

      source 枚举:UNKNOWN

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • typebody · string可选

      type

    • content_digestbody · string可选

      content_digest

  • typebody · string可选

    type

  • metadatabody · map<string,string>可选

    metadata

  • content_digestbody · string可选

    content_digest

  • codebody · uint32必填

    业务码。

  • infobody · string可选

    提示信息。

  • ServiceContractbody · ServiceContract可选

    实体字段。

    • idbody · string可选

      id

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • revisionbody · string可选

      revision

    • contentbody · string可选

      content

    • interfacesbody · InterfaceDescriptor[]可选

      interfaces

      • idbody · string可选

        id

      • methodbody · string可选

        method

      • pathbody · string可选

        path

      • contentbody · string可选

        content

      • sourcebody · enum(Source)可选

        source 枚举:UNKNOWN

      • revisionbody · string可选

        revision

      • ctimebody · string可选

        ctime

      • mtimebody · string可选

        mtime

      • namebody · string可选

        name

      • namespacebody · string可选

        namespace

      • servicebody · string可选

        service

      • protocolbody · string可选

        protocol

      • versionbody · string可选

        version

      • typebody · string可选

        type

      • content_digestbody · string可选

        content_digest

    • ctimebody · string可选

      ctime

    • mtimebody · string可选

      mtime

    • statusbody · string可选

      status

    • typebody · string可选

      type

    • metadatabody · map<string,string>可选

      metadata

    • content_digestbody · string可选

      content_digest

请求示例
curl -sS -X POST 'http://127.0.0.1:8090/naming/v1/service/contract/methods' \
  -H "Authorization: $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '[]'
响应示例
{
  "code": 200000,
  "info": "execute success"
}
PUT/naming/v1/service/contract/methods/append需要鉴权

追加契约方法

追加契约方法。

  • Authorizationheader · string必填

    登录返回的 token。

  • idbody · string可选

    id

  • namebody · string可选

    name

  • namespacebody · string可选

    namespace

  • servicebody · string可选

    service

  • protocolbody · string可选

    protocol

  • versionbody · string可选

    version

  • contentbody · string可选

    content

  • interfacesbody · InterfaceDescriptor[]可选

    interfaces

    • idbody · string可选

      id

    • methodbody · string可选

      method

    • pathbody · string可选

      path

    • contentbody · string可选

      content

    • sourcebody · enum(Source)可选

      source 枚举:UNKNOWN

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • typebody · string可选

      type

    • content_digestbody · string可选

      content_digest

  • typebody · string可选

    type

  • metadatabody · map<string,string>可选

    metadata

  • content_digestbody · string可选

    content_digest

  • codebody · uint32必填

    业务码。

  • infobody · string可选

    提示信息。

  • ServiceContractbody · ServiceContract可选

    实体字段。

    • idbody · string可选

      id

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • revisionbody · string可选

      revision

    • contentbody · string可选

      content

    • interfacesbody · InterfaceDescriptor[]可选

      interfaces

      • idbody · string可选

        id

      • methodbody · string可选

        method

      • pathbody · string可选

        path

      • contentbody · string可选

        content

      • sourcebody · enum(Source)可选

        source 枚举:UNKNOWN

      • revisionbody · string可选

        revision

      • ctimebody · string可选

        ctime

      • mtimebody · string可选

        mtime

      • namebody · string可选

        name

      • namespacebody · string可选

        namespace

      • servicebody · string可选

        service

      • protocolbody · string可选

        protocol

      • versionbody · string可选

        version

      • typebody · string可选

        type

      • content_digestbody · string可选

        content_digest

    • ctimebody · string可选

      ctime

    • mtimebody · string可选

      mtime

    • statusbody · string可选

      status

    • typebody · string可选

      type

    • metadatabody · map<string,string>可选

      metadata

    • content_digestbody · string可选

      content_digest

请求示例
curl -sS -X PUT 'http://127.0.0.1:8090/naming/v1/service/contract/methods/append' \
  -H "Authorization: $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '[]'
响应示例
{
  "code": 200000,
  "info": "execute success"
}
POST/naming/v1/service/contract/methods/delete需要鉴权

删除契约方法

删除契约方法。

  • Authorizationheader · string必填

    登录返回的 token。

  • idbody · string可选

    id

  • namebody · string可选

    name

  • namespacebody · string可选

    namespace

  • servicebody · string可选

    service

  • protocolbody · string可选

    protocol

  • versionbody · string可选

    version

  • contentbody · string可选

    content

  • interfacesbody · InterfaceDescriptor[]可选

    interfaces

    • idbody · string可选

      id

    • methodbody · string可选

      method

    • pathbody · string可选

      path

    • contentbody · string可选

      content

    • sourcebody · enum(Source)可选

      source 枚举:UNKNOWN

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • typebody · string可选

      type

    • content_digestbody · string可选

      content_digest

  • typebody · string可选

    type

  • metadatabody · map<string,string>可选

    metadata

  • content_digestbody · string可选

    content_digest

  • codebody · uint32必填

    业务码。

  • infobody · string可选

    提示信息。

  • ServiceContractbody · ServiceContract可选

    实体字段。

    • idbody · string可选

      id

    • namebody · string可选

      name

    • namespacebody · string可选

      namespace

    • servicebody · string可选

      service

    • protocolbody · string可选

      protocol

    • versionbody · string可选

      version

    • revisionbody · string可选

      revision

    • contentbody · string可选

      content

    • interfacesbody · InterfaceDescriptor[]可选

      interfaces

      • idbody · string可选

        id

      • methodbody · string可选

        method

      • pathbody · string可选

        path

      • contentbody · string可选

        content

      • sourcebody · enum(Source)可选

        source 枚举:UNKNOWN

      • revisionbody · string可选

        revision

      • ctimebody · string可选

        ctime

      • mtimebody · string可选

        mtime

      • namebody · string可选

        name

      • namespacebody · string可选

        namespace

      • servicebody · string可选

        service

      • protocolbody · string可选

        protocol

      • versionbody · string可选

        version

      • typebody · string可选

        type

      • content_digestbody · string可选

        content_digest

    • ctimebody · string可选

      ctime

    • mtimebody · string可选

      mtime

    • statusbody · string可选

      status

    • typebody · string可选

      type

    • metadatabody · map<string,string>可选

      metadata

    • content_digestbody · string可选

      content_digest

请求示例
curl -sS -X POST 'http://127.0.0.1:8090/naming/v1/service/contract/methods/delete' \
  -H "Authorization: $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '[]'
响应示例
{
  "code": 200000,
  "info": "execute success"
}

On this page