2017-10-30 3 views
1

Wenn ich wie eine Ressource auf dem API-Gateway haben wollenPaginierung auf AWS Apigateway DynamoDB Proxy

GET /comments

und es gibt Hunderte von Artikeln auf dieser Route, die ich brauchen würde, diese Elemente Paginieren. Soweit ich sehen kann, bietet das API-Gateway nur einen next Parameter gemäß diesen docs.

So konnte ich diese Parameter verwenden tatsächlich eine Paginierung zu schaffen, aber da es keine Informationen über die Gesamtzahl der Elemente ist, könnte ich eine „typische“ Paginierung wie

< 0, , nicht erstellen 2 , 3, 4, 5, ...>

Oder fehlt mir hier etwas? Wie gehen Webapps, die dynamodb über apigateway verbrauchen, damit um?

Antwort

2

Der Prozess, eine Gesamtanzahl von einem verteilten System zu erhalten, ist ein kostspieliger Prozess.

Wenn Sie abfragen, erhalten Sie nur die obersten verfügbaren Daten bei der ersten Rückkehr geben Sie eine Markierung. Wenn Sie den Marker übergeben, erhalten Sie den nächsten verfügbaren Datenstapel. Ein Scan für alle verfügbaren Daten ist ein kostspieliger Prozess und verlangsamt die Seitenanforderungen.

Wenn Sie wirklich eine Gesamtanzahl der Datensätze in einer Tabelle benötigen, können Sie ein Atom Zähler in einem Datensatz halten, dass Sie die Gesamtzahl der Zeilen in einer anderen Tabelle gibt.

Atomic Zähler: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.AtomicCounters

Hoffe, es hilft.