Richieste post
Questa pagina descrive l'invio di richieste tramite l'API WebSocket.
Formato della richiesta
L'API WebSocket supporta l'invio delle richieste che normalmente è possibile inviare tramite l'API HTTP. Queste richieste sono richieste info o azioni firmate. Per esempi di payload delle richieste info, consultare la sezione relativa all'endpoint Info. Per esempi di payload delle azioni firmate, consultare la sezione relativa all'endpoint Exchange.
Per inviare tale payload per entrambi i tipi tramite l'API WebSocket, è necessario racchiuderlo come segue:
{
"method": "post",
"id": <number>,
"request": {
"type": "info" | "action",
"payload": { ... }
}
}
Nota: i campi method e id sono obbligatori. Si consiglia di utilizzare un id univoco per ogni richiesta post inviata, al fine di tenere traccia delle richieste in sospeso attraverso il canale.
Nota: le richieste explorer non sono supportate tramite WebSocket.
Formato della risposta
Il server risponde alle richieste post con un esito positivo o con un errore. In caso di errore, viene restituita una String che riproduce il codice di stato HTTP e la descrizione che sarebbero stati restituiti se la richiesta fosse stata inviata tramite HTTP.
{
"channel": "post",
"data": {
"id": <number>,
"response": {
"type": "info" | "action" | "error",
"payload": { ... }
}
}
}
Esempi
Di seguito alcuni esempi di sottoscrizione a diversi feed tramite i messaggi di sottoscrizione:
Invio di una richiesta info L2Book:
{
"method": "post",
"id": 123,
"request": {
"type": "info",
"payload": {
"type": "l2Book",
"coin": "ETH",
"nSigFigs": 5,
"mantissa": null
}
}
}
Risposta di esempio:
{
"channel": "post",
"data": {
"id": <number>,
"response": {
"type": "info",
"payload": {
"type": "l2Book",
"data": {
"coin": "ETH",
"time": <number>,
"levels": [
[{"px":"3007.1","sz":"2.7954","n":1}],
[{"px":"3040.1","sz":"3.9499","n":1}]
]
}
}
}
}
}
Invio di una richiesta di azione firmata relativa a un ordine:
{
"method": "post",
"id": 256,
"request": {
"type": "action",
"payload": {
"action": {
"type": "order",
"orders": [{"a": 4, "b": true, "p": "1100", "s": "0.2", "r": false, "t": {"limit": {"tif": "Gtc"}}}],
"grouping": "na"
},
"nonce": 1713825891591,
"signature": {
"r": "...",
"s": "...",
"v": "..."
},
"vaultAddress": "0x12...3"
}
}
}
Risposta di esempio:
{
"channel": "post",
"data": {
"id": 256,
"response": {
"type":"action",
"payload": {
"status": "ok",
"response": {
"type": "order",
"data": {
"statuses": [
{
"resting": {
"oid": 88383,
}
}
]
}
}
}
}
}
}