HTTP API

API #

通过 API 接口我们可以和 wasmcloud host 进行交互。

请求说明 #

所有的操作类请求会异步操作,如果需要最终状态使用查询接口查询即可。

返回格式介绍 #

{
    "code": 1001,
    "data": null,
    "msg": "ok"
}

code 为 1001 表示请求正常。其他值表示请求异常,具体原因见 msg 字段。

Host #

获取 HOST 信息 #

接口地址

GET /api/hosts

返回示例:

{
    "code": 1001,
    "data": [
        {
            "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N",
            "labels": {
                "hostcore.arch": "x86_64",
                "hostcore.os": "macos",
                "hostcore.osfamily": "unix"
            }
        }
    ],
    "msg": "ok"
}

Actor #

获取 Actor 列表 #

接口地址

GET /api/actors

返回示例

{
    "code": 1001,
    "data": [
        {
            "actor_id": "MABJRL7AVCXXSAAOMROVRAOGRRI6OWV35VKERM62NDRGGDUU5FHMC2JJ",
            "actor_name": "weekv",
            "actor_ociref": "harbor.oneitfarm.com/bifrost/weekv-actor:0.0.2",
            "count": 1,
            "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N",
            "id": "MABJRL7AVCXXSAAOMROVRAOGRRI6OWV35VKERM62NDRGGDUU5FHMC2JJ (NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N)",
            "is_hotwatched": false
        },
        {
            "actor_id": "MC5UINV45X7Z2V66M7URV2WUCEZRUQPH7CSQ72OTTWCLE3EICMWSS6FP",
            "actor_name": "Echo",
            "actor_ociref": "harbor.oneitfarm.com/bifrost/echo-actor:0.3.6",
            "count": 1,
            "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N",
            "id": "MC5UINV45X7Z2V66M7URV2WUCEZRUQPH7CSQ72OTTWCLE3EICMWSS6FP (NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N)",
            "is_hotwatched": false
        }
    ],
    "msg": "ok"
}

添加 Actor(OCI 方式) #

接口地址

POST /api/actors/oci

请求参数示例

{
    "count": 2, // actor 实例个数
    "actor_ociref": "harbor.oneitfarm.com/bifrost/echo-actor:0.3.8", // actor 的 oci 地址
    "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N" // host_id,由 /api/hosts 接口获取得到
}

返回示例

{
    "code": 1001,
    "data": null,
    "msg": "ok"
}

修改 Actor 数量 #

接口地址

PUT /api/actors/count

请求示例

{
    "desired_count": 4, // 期望的副本数
    "actor_id": "MABJRL7AVCXXSAAOMROVRAOGRRI6OWV35VKERM62NDRGGDUU5FHMC2JJ", // actor_id
    "actor_ociref": "harbor.oneitfarm.com/bifrost/weekv-actor:0.0.2", // actor ref 信息
    "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N" // host_id
}

返回值示例

{
    "code": 1001,
    "data": null,
    "msg": "ok"
}

Provider #

获取 Provider 列表 #

接口地址

GET /api/providers

返回示例

{
    "code": 1001,
    "data": [
        {
            "contract_id": "wasmcloud:httpserver",
            "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N",
            "id": "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M (default) (NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N)",
            "link_name": "default",
            "provider_id": "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M",
            "provider_name": "HTTP Server",
            "status": "Healthy"
        },
        {
            "contract_id": "wasmcloud:keyvalue",
            "host_id": "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N",
            "id": "VAZVC4RX54J2NVCMCW7BPCAHGGG5XZXDBXFUMDUXGESTMQEJLC3YVZWB (default) (NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N)",
            "link_name": "default",
            "provider_id": "VAZVC4RX54J2NVCMCW7BPCAHGGG5XZXDBXFUMDUXGESTMQEJLC3YVZWB",
            "provider_name": "Redis KeyValue Store",
            "status": "Healthy"
        }
    ],
    "msg": "ok"
}

添加 Provider(方式OCI) #

接口地址

POST /api/providers/oci

请求参数示例

{
  "provider_ociref" : "harbor.oneitfarm.com/bifrost/httpserver-provider:0.16.4",
  "provider_link_name" : "default",
  "host_id" : "NAR65YVFTUJGNYQMLJX33GCR54X7G2NN2YR4IHIQLW2IXRSJVJJIBW4N",
  "provider_configuration" : ""
}

返回示例

{
    "code": 1001,
    "data": null,
    "msg": "ok"
}

关联 Provider 和 Actor #

接口地址

POST /api/links

请求示例

{
    "actor_id": "MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5",
    "provider_id": "VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M",
    "contract_id": "wasmcloud:httpserver",
    "link_name": "default",
    "values": "address=0.0.0.0:8080"
}

返回示例

{
    "code": 1001,
    "data": null,
    "msg": "ok"
}

接口地址

DELETE /api/links

请求示例

{
    "actor_id": "MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5",
    "contract_id": "wasmcloud:httpserver",
    "link_name": "default"
}

返回示例

{
    "code": 1001,
    "data": null,
    "msg": "ok"
}