AWS RDS データ API の executeStatement が列名を返さない 質問する

AWS RDS データ API の executeStatement が列名を返さない 質問する

私は遊んでいますAmazon Aurora Serverless の新しいデータ API

応答でテーブル列名を取得することは可能ですか?

例えば、次のクエリをユーザーid、、、、first_nameの列をlast_name持つ表email:phone

const sqlStatement = `
    SELECT *
    FROM user
    WHERE id = :id 
`;
const params = {
    secretArn: <mySecretArn>,
    resourceArn: <myResourceArn>,
    database: <myDatabase>,
    sql: sqlStatement,
    parameters: [
        {
            name: "id",
            value: {
                "stringValue": 1
            }
        }
    ]
};
let res = await this.RDS.executeStatement(params)
console.log(res);

次のような応答が返されるので、各値に対応する列を推測する必要があります。

{
    "numberOfRecordsUpdated": 0,
    "records": [
        [
            {
                "longValue": 1
            },
            {
                "stringValue": "Nicolas"
            },
            {
                "stringValue": "Perez"
            },
            {
                "stringValue": "[email protected]"
            },
            {
                "isNull": true
            }
        ]
    ]
}

次のような回答を希望します:

{
    id: 1,
    first_name: "Nicolas",
    last_name: "Perez",
    email: "[email protected]",
    phone: null
}

アップデート1

私は見つけたnpmモジュールAurora Serverless Data APIをラップし、開発を簡素化します

ベストアンサー1

応答サイズを削減しようとしており、各レコードに列情報を含めるのは冗長であったため、現在のアプローチを採用することにしました。

結果に列メタデータを含めることを明示的に選択できます。パラメータ「includeResultMetadata」を参照してください。

https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_ExecuteStatement.html#API_ExecuteStatement_RequestSyntax

おすすめ記事