Appearance
me.virmesh.worldInstance.listInstance
world id に紐づく instance 一覧を取得します。
WorldServer が現在管理している instance 一覧を取得する public action です。 単一 instance のみをサポートするサーバーも、この action で既存 instance を返します。
Endpoint
Request schema
query.worldIdstringRequiredinstance 一覧を取得する world identifier です。
query.includeClosedbooleanOptionaltrue の場合、state: closed の instance も返すことを許可します。既定は false です。
Request example
{
"query": {
"worldId": "medi:world:ed25519:base64url-world-public-key",
"includeClosed": false
}
}Responses
200status+me.virmesh.success.worldInstancesListedworld instance 一覧が正常に取得されたことを示します。
status+me.virmesh.success.worldInstancesListedworld instance 一覧が正常に取得されたことを示します。
Response body
現在の WorldServer が管理する instance 一覧です。
References obj+me.virmesh.worldInstance.instance : WorldServer 上で稼働している world instance を表す object です。
idstringRequiredWorldServer が割り当てる instance identifier です。不透明な文字列として扱います。
worldIdstringRequiredこの instance が属する world identifier です。形式は medi:world:<scheme>:<publicKey> です。
endpointstringRequiredこの instance を管理する WorldServer の absolute URL です。
namestringOptional表示用の instance 名です。
statestringRequiredopen, full, closed のいずれかです。
playerCountintegerRequired現在参加している player 数です。
capacityintegerRequired参加可能な最大 player 数です。
joinPolicystringRequiredpublic, invite, private のいずれかです。
createdAtintegerRequiredinstance を作成した epoch second です。
updated_atintegerRequiredinstance metadata を更新した epoch second です。
worldProtocolsobject[]Requiredこの instance に接続するための protocol 一覧です。各要素は name, version, information を持ちます。
worldProtocols[].namestringRequiredprotocol identifier です。例: me.virmesh.world.websocket。
worldProtocols[].versionstringRequiredprotocol version です。
worldProtocols[].informationobjectRequired当該プロトコルがこの instance への接続に必要とするパラメータです。キー・型・意味は worldProtocols[].name で識別されるプロトコル仕様が定義します。
Response example
{
"payload": {
"instances": [
{
"id": "inst_01HZY8K7N2Q4Y6Z8A0B1C2D3E4",
"worldId": "medi:world:ed25519:base64url-world-public-key",
"endpoint": "https://worlds.example.com/",
"name": "Main",
"state": "open",
"playerCount": 12,
"capacity": 32,
"joinPolicy": "public",
"createdAt": 1770000000,
"updated_at": 1770000100,
"worldProtocols": [
{
"name": "me.virmesh.world.websocket",
"version": "1.0.0",
"information": {
"uri": "wss://worlds.example.com/instances/inst_01HZY8K7N2Q4Y6Z8A0B1C2D3E4/session"
}
}
]
}
]
}
}me.virmesh.worldInstance.listInstance が正常終了し、WorldServer が管理する instance 一覧を返したことを示します。
400status+me.virmesh.http.invalid_queryquery parameter の組み合わせまたは形式が不正であることを示します。
status+me.virmesh.http.invalid_queryquery parameter の組み合わせまたは形式が不正であることを示します。
この status は route が期待する query parameter の条件を満たしていない場合に返ります。
resolveHandle では id と handle の同時指定、未指定、未知の key を拒否します。
resolveWorld では worldAddress と worldId の同時指定、未指定、未知の key を拒否します。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
handle query is ambiguous
{
"status": "status+me.virmesh.http.invalid_query",
"payload": {
"message": "Specify exactly one of query.id or query.handle."
}
}404status+me.virmesh.world.not_found指定された world が見つからないことを示します。
status+me.virmesh.world.not_found指定された world が見つからないことを示します。
この status は query.worldId に対応する world manifest を WorldServer が保持していない場合に返ります。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。