Paweł Łukasiewicz
2023-12-15
Paweł Łukasiewicz
2023-12-15
Udostępnij Udostępnij Kontakt
Wprowadzenie

W poprzednim wpisie utworzyliśmy nową tabelę. Zanim przejdziemy do operacji aktualizacji czy kasowania sprawdźmy czy nasza tabela rzeczywiście jest na miejscu.

W tym celu oczywiście musimy utworzyć instancję AmazonDynamoDBClient (o ile nie korzystacie z przygotowanego projektu gdzie wykorzystujemy Dependency Injection) i wykonać metodę ListTables.

Metoda ListTables nie wymaga żadnych parametrów. Można jednak przekazać parametry opcjonalne, np. Limit, który pozwala ograniczyć liczbę zwracanych nazw tabel (tzw. paging). W takim przypadku wymagane jest jednak utworzenie obiektu ListTablesRequest i podanie opcjonalnych parametrów jak możecie zobaczyć poniżej.

Wraz z rozmiarem strony żądanie ustawia parametr ExclusiveStartTableName, którego początkowa wartość to null. Jednakże po pobraniu wyników pierwszej strony, aby pobrać kolejną stronę wyników, należy ustawić wartość tego parametru na właściwość LastEvaluatedTableName bieżącego wyniku.

public async Task<ActionResult<string>> ListTables() {
    StringBuilder sb = new StringBuilder();

    // Wartość początkowa dla pierwszej strony listy tabel
    string lastEvaluatedTableName = null;

    do 
    {
        // Utworzenie żądania z opcjonalnymi parametrami
        var request = new ListTablesRequest {
            Limit = 10, // Rozmiar strony
            ExclusiveStartTableName = lastEvaluatedTableName
        };

        var response = await _amazonDynamoDB.ListTablesAsync(request);

        ListTablesResponse result = response;

        foreach(string name in result.TableNames)
            sb.AppendLine($"TableName: {name}");

        lastEvaluatedTableName = result.LastEvaluatedTableName;

    } while (lastEvaluatedTableName != null);

    return sb.ToString();
}
                    

Po wykonaniu powyższego kodu możecie zobaczyć, że w poprzednim kroku rzeczywiście utworzyliśmy nową tabelę: DynamoDB: lista tabel