chat.yakka.getSnapshot
Everything needed for first paint, in one round trip: the viewer's servers, the active server's channels and roster, and one channel's newest timeline page. One method rather than five because this is the server-rendered path — every extra round trip here is latency a reader sees before anything appears. Warm navigations do not call it at all; the client's store already holds the answer.
Details · query
| Kind | query |
|---|---|
| Authority | yakka.chat |
| Indexed |
Checks
Validunlimited-stringdefs.main.parameters.properties.channelNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.output.properties.activeChannelIdNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Everything needed for first paint, in one round trip: the viewer's servers, the active server's channels and roster, and one channel's newest timeline page.\n\nOne method rather than five because this is the server-rendered path — every extra round trip here is latency a reader sees before anything appears. Warm navigations do not call it at all; the client's store already holds the answer.",
"output": {
"encoding": "application/json",
"schema": {
"ref": "#output",
"type": "ref"
}
},
"parameters": {
"properties": {
"channel": {
"description": "Which channel's timeline to include. Omit for the server's default.",
"type": "string"
},
"server": {
"description": "Which server to open. Omit to let the appview choose the viewer's first.",
"format": "did",
"type": "string"
}
},
"type": "params"
},
"type": "query"
},
"output": {
"properties": {
"activeChannelId": {
"type": "string"
},
"activeServerDid": {
"format": "did",
"type": "string"
},
"channels": {
"items": {
"ref": "chat.yakka.defs#channelView",
"type": "ref"
},
"type": "array"
},
"members": {
"items": {
"ref": "chat.yakka.defs#memberView",
"type": "ref"
},
"type": "array"
},
"readState": {
"items": {
"ref": "chat.yakka.defs#channelReadState",
"type": "ref"
},
"type": "array"
},
"servers": {
"items": {
"ref": "chat.yakka.defs#serverView",
"type": "ref"
},
"type": "array"
},
"timeline": {
"ref": "chat.yakka.defs#timelinePage",
"type": "ref"
},
"viewer": {
"ref": "chat.yakka.defs#memberView",
"type": "ref"
}
},
"required": [
"servers",
"channels",
"members"
],
"type": "object"
}
},
"id": "chat.yakka.getSnapshot",
"lexicon": 1
}