일부 메소드는 하나의 응답에 효율적으로 들어갈 수 있는 것보다 더 많은 데이터를 반환합니다. 포함된 결과보다 많은 결과가 있는 경우 응답에 마커 필드가 포함됩니다. 이를 사용하여 여러 호출에서 더 많은 데이터 페이지를 검색할 수 있습니다. 각 요청에서 이전 응답의 마커 값을 전달하여 중단한 지점부터 다시 시작하세요. 응답에서 마커가 생략된 경우에는 데이터 집합의 끝에 도달한 것입니다.
마커 필드의 형식은 의도적으로 정의되지 않았습니다. 각 서버는 원하는 대로 마커 필드를 정의할 수 있으므로 문자열, 중첩된 객체 또는 다른 유형의 형식을 취할 수 있습니다. 서버마다, 그리고 같은 서버에서 제공하는 메소드마다 마커 정의가 다를 수 있습니다. 각 마커는 임시적이며 10분이 지나면 예상대로 작동하지 않을 수 있습니다.
from xrpl.clients import JsonRpcClientfrom xrpl.models.requests import LedgerData# Create a client to connect to the network.client =JsonRpcClient("https://xrplcluster.com/")# Query the most recently validated ledger for info.ledger =LedgerData(ledger_index="validated")ledger_data = client.request(ledger).resultledger_data_index = ledger_data["ledger_index"]# Create a function to run on each API call.defprintLedgerResult():print(ledger_data)# Execute function at least once before checking for markers.whileTrue:printLedgerResult()if"marker"notin ledger_data:break# Specify the same ledger and add the marker to continue querying. ledger_marker =LedgerData(ledger_index=ledger_data_index, marker=ledger_data["marker"]) ledger_data = client.request(ledger_marker).result// Some code
constxrpl=require("xrpl")asyncfunctionmain() {// Create a client and connect to the network.constclient=newxrpl.Client("wss://xrplcluster.com/")awaitclient.connect()// Query the most recently validated ledger for info.let ledger =awaitclient.request({"command":"ledger_data","ledger_index":"validated", })constledger_data_index= ledger["result"]["ledger_index"]// Create a function to run on each API call.functionprintLedgerResult(){console.log(ledger["result"]) }// Execute function at least once before checking for markers.do {printLedgerResult()if (ledger["result"]["marker"] ===undefined) {break }// Specify the same ledger and add the marker to continue querying.constledger_marker=awaitclient.request({"command":"ledger_data","ledger_index": ledger_data_index,"marker": ledger["result"]["marker"] }) ledger = ledger_marker } while (true)// Disconnect when done. If you omit this, Node.js won't end the process.client.disconnect()}main()