Skip to content

me.virmesh.handle.resolveHandle

player id または handle から handle record を引き当てます。

current handle record を取得する public action です。 tombstone 化済み account またはその handle に対する解決では、保存済み handle record を返さず status+me.virmesh.account.disabled を返します。

draft

Endpoint

Method
GET
Path
/public/me.virmesh.handle.resolveHandle
Auth
none
Host
VirMesh.HandleServer, optional VirMesh.PlayerServer

Request schema

query.idstringOptional

player identifier で検索します。query.handle とは同時指定できません。

query.handlestringOptional

primary または secondary handle で検索します。query.id とは同時指定できません。

Responses

200
status+me.virmesh.success.handleResolved

handle record が解決されたことを示します。

Response body

payloadhandleRecordRequired

解決された current handle record です。

References obj+me.virmesh.handle.record : player に紐づく current handle record です。

idstringRequired

handle owner の player identifier です。

primaryHandlestringRequired

player の canonical primary handle です。

secondaryHandlesstring[]Required

同一 player に解決される secondary handle 一覧です。

playerServerstringRequired

player を管理する PlayerServer の absolute URL です。

updated_atintegerRequired

この handle record payload を生成した時刻です。epoch second を返します。

signaturestringRequired

response payload に対する、対象 player 本人の署名です。

Response example

{
  "payload": {
    "id": "medi:player:ed25519:base64-public-key",
    "primaryHandle": "[email protected]",
    "secondaryHandles": [
      "[email protected]"
    ],
    "playerServer": "https://ps.example.com/",
    "updated_at": 1770000100
  },
  "signature": "base64-signature-by-player"
}

me.virmesh.handle.resolveHandle が正常終了したときに返ります。 この 200 response は shared status envelope ではなく、 対象 player 本人の鍵で署名された handle record response をそのまま返します。

400
status+me.virmesh.http.invalid_query

query parameter の組み合わせまたは形式が不正であることを示します。

この status は route が期待する query parameter の条件を満たしていない場合に返ります。 resolveHandle では idhandle の同時指定、未指定、未知の 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."
  }
}
404
status+me.virmesh.handle.not_found

指定した player id または handle に対応する record が存在しないことを示します。

resolveHandle が検索対象を見つけられなかった場合に返ります。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

handle not found

{
  "status": "status+me.virmesh.handle.not_found",
  "payload": {
    "message": "No handle record matched the requested id or handle."
  }
}
410
status+me.virmesh.account.disabled

対象 account が tombstone 化済みであり、有効な主体または参照先として扱えないことを示します。

この status は account が disable 済みで、以後の更新、social 操作、migration、 公開 profile / handle 解決の対象として受理されない場合に返ります。 通常は HTTP 410 Gone と組み合わせて返します。

Status payload

payload.messagestringRequired

実装依存の詳細メッセージです。

account disabled

{
  "status": "status+me.virmesh.account.disabled",
  "payload": {
    "message": "The requested account has been disabled and tombstoned."
  }
}