Skip to content
This repository was archived by the owner on Nov 22, 2024. It is now read-only.

Commit ebea9ea

Browse files
committed
added cursor example
1 parent 534fbde commit ebea9ea

2 files changed

Lines changed: 152 additions & 0 deletions

File tree

README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,79 @@ COUNT=1 PAGE=7 PER_PAGE=5 TOTAL_COUNT=31 TOTAL_PAGES=7 -- varius.example vehicul
740740
COUNT=5 PAGE=6 PER_PAGE=5 TOTAL_COUNT=31 TOTAL_PAGES=7 -- vivamus.example
741741
```
742742

743+
### Paging thru lists (using cursors)
744+
745+
Some API calls use cursors to read beyond the initally returned values. See the API page in order to see which API calls do this.
746+
747+
```
748+
$ ACCOUNT_ID="00000000000000000000000000000000"
749+
$ LIST_ID="00000000000000000000000000000000"
750+
$
751+
$ cli4 --raw /accounts/::${ACCOUNT_ID}/rules/lists/::${LIST_ID}/items > /tmp/page1.json
752+
$ after=`jq -r '.result_info.cursors.after' < /tmp/page1.json`
753+
$ echo "after=$after"
754+
after=Mxm4GVmKjYbFjy2VxMPipnJigm1M_s6lCS9ABR9wx-RM2A
755+
$
756+
```
757+
758+
Once we have the ```after``` value, we can pass it along in order to read the next hunk of values. We finish when ```after``` returns as null (or isn't present).
759+
760+
```
761+
$ cli4 --raw cursor="$after" /accounts/::${ACCOUNT_ID}/rules/lists/::${LIST_ID}/items > /tmp/page2.json
762+
$ after=`jq -r '.result_info.cursors.after' < /tmp/page2.json`
763+
$ echo "after=$after"
764+
after=null
765+
$
766+
```
767+
768+
We can see the results now in two files.
769+
770+
```
771+
$ jq -c '.result[]' < /tmp/page1.json | wc -l
772+
25
773+
$
774+
775+
$ jq -c '.result[]' < /tmp/page2.json | wc -l
776+
5
777+
$
778+
779+
$ for f in /tmp/page?.json ; do jq -r '.result[]|.id,.ip,.comment' < $f | paste - - - ; done | column -s' ' -t
780+
0fe44928258549feb47126a966fbf4a0 0.0.0.0 all zero
781+
2e1e02120f5e466f8c0e26375e4cf4c8 1.0.0.1 Cloudflare DNS a
782+
9ca5fd0ac6f54fdbb9dedd3fb72ce2da 1.1.1.1 Cloudflare DNS b
783+
b3654987446743738c782f36ebe074f5 10.0.0.0/8 RFC1918 space
784+
90bec8ce37d242faa2e27d1e78c1d8e2 103.21.244.0/22 Cloudflare IP
785+
970a3c810cda41af9bef2c36a1892f7e 103.22.200.0/22 Cloudflare IP
786+
3ec8516158bf4f3cac18210f611ee541 103.31.4.0/22 Cloudflare IP
787+
ee9d268367204e6bb8e5e4c907f22de8 104.16.0.0/12 Cloudflare IP
788+
93ae02eda9774c45840af367a02fe529 108.162.192.0/18 Cloudflare IP
789+
62891ebf6db44aa494d79a6401af185e 131.0.72.0/22 Cloudflare IP
790+
cac40cd940cc470582b8c912a8a12bea 141.101.64.0/18 Cloudflare IP
791+
f6d5eacd81a2407f8e0d81caee21e7f8 162.158.0.0/15 Cloudflare IP
792+
3d538dfc38ab471d9d3fe78332acfa4e 172.16.0.0/12 RFC1918 space
793+
f353cb8f98424837ad35382a22b9debe 172.64.0.0/13 Cloudflare IP
794+
78f3e1a0bafc41f88d4d40ad49a642e0 173.245.48.0/20 Cloudflare IP
795+
c23a545475c54c32a7681c6b508d3e80 188.114.96.0/20 Cloudflare IP
796+
f693237c9e294fe481221cbc2d7c20ef 190.93.240.0/20 Cloudflare IP
797+
6d465ab3a0994c07827ebdcf8f34d977 192.168.0.0/16 RFC1918 space
798+
1ad1e634b3664bac939086185c62faf7 197.234.240.0/22 Cloudflare IP
799+
5d2968e7b3114d8e869a379d71c8ba86 198.41.128.0/17 Cloudflare IP
800+
6a69de60b31448fa864f0a3ac5abe8d0 224.0.0.0/24 Multicast
801+
30749cce89af4ab3a80e308294f46a46 240.0.0.0/4 Class E
802+
2b32c67ea4d044628abe39f28662d8f0 255.255.255.255 all ones
803+
cc7cd828b2fb4bcfb9391c2d3ef8d068 2400:cb00::/32 Cloudflare IP
804+
b30d4cbd7dcd48729e8ebeda552e48a8 2405:8100::/32 Cloudflare IP
805+
49db60758c8344959c338a74afc9748a 2405:b500::/32 Cloudflare IP
806+
96e9eca1923c40d5a84865145f5a5d6a 2606:4700::/32 Cloudflare IP
807+
21bc52a26e10405d89b7180ddcf49302 2803:f800::/32 Cloudflare IP
808+
ff78f842188e4b869eb5389ae9ab8f41 2a06:98c0::/29 Cloudflare IP
809+
0880cdfc40b14f6fa0639522a728859d 2c0f:f248::/32 Cloudflare IP
810+
$
811+
```
812+
813+
The ```result_info.cursors``` area also contains a ```before``` value for reverse scrolling.
814+
815+
As with ```per_page``` scrolling, raw mode is used.
743816

744817
### DNSSEC CLI examples
745818

README.rst

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,85 @@ It produces the following results.
825825
COUNT=1 PAGE=7 PER_PAGE=5 TOTAL_COUNT=31 TOTAL_PAGES=7 -- varius.example vehicula.example velit.example velit.example vitae.example
826826
COUNT=5 PAGE=6 PER_PAGE=5 TOTAL_COUNT=31 TOTAL_PAGES=7 -- vivamus.example
827827

828+
Paging thru lists (using cursors)
829+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
830+
831+
Some API calls use cursors to read beyond the initally returned values.
832+
See the API page in order to see which API calls do this.
833+
834+
::
835+
836+
$ ACCOUNT_ID="00000000000000000000000000000000"
837+
$ LIST_ID="00000000000000000000000000000000"
838+
$
839+
$ cli4 --raw /accounts/::${ACCOUNT_ID}/rules/lists/::${LIST_ID}/items > /tmp/page1.json
840+
$ after=`jq -r '.result_info.cursors.after' < /tmp/page1.json`
841+
$ echo "after=$after"
842+
after=Mxm4GVmKjYbFjy2VxMPipnJigm1M_s6lCS9ABR9wx-RM2A
843+
$
844+
845+
Once we have the ``after`` value, we can pass it along in order to read
846+
the next hunk of values. We finish when ``after`` returns as null (or
847+
isn't present).
848+
849+
::
850+
851+
$ cli4 --raw cursor="$after" /accounts/::${ACCOUNT_ID}/rules/lists/::${LIST_ID}/items > /tmp/page2.json
852+
$ after=`jq -r '.result_info.cursors.after' < /tmp/page2.json`
853+
$ echo "after=$after"
854+
after=null
855+
$
856+
857+
We can see the results now in two files.
858+
859+
::
860+
861+
$ jq -c '.result[]' < /tmp/page1.json | wc -l
862+
25
863+
$
864+
865+
$ jq -c '.result[]' < /tmp/page2.json | wc -l
866+
5
867+
$
868+
869+
$ for f in /tmp/page?.json ; do jq -r '.result[]|.id,.ip,.comment' < $f | paste - - - ; done | column -s' ' -t
870+
0fe44928258549feb47126a966fbf4a0 0.0.0.0 all zero
871+
2e1e02120f5e466f8c0e26375e4cf4c8 1.0.0.1 Cloudflare DNS a
872+
9ca5fd0ac6f54fdbb9dedd3fb72ce2da 1.1.1.1 Cloudflare DNS b
873+
b3654987446743738c782f36ebe074f5 10.0.0.0/8 RFC1918 space
874+
90bec8ce37d242faa2e27d1e78c1d8e2 103.21.244.0/22 Cloudflare IP
875+
970a3c810cda41af9bef2c36a1892f7e 103.22.200.0/22 Cloudflare IP
876+
3ec8516158bf4f3cac18210f611ee541 103.31.4.0/22 Cloudflare IP
877+
ee9d268367204e6bb8e5e4c907f22de8 104.16.0.0/12 Cloudflare IP
878+
93ae02eda9774c45840af367a02fe529 108.162.192.0/18 Cloudflare IP
879+
62891ebf6db44aa494d79a6401af185e 131.0.72.0/22 Cloudflare IP
880+
cac40cd940cc470582b8c912a8a12bea 141.101.64.0/18 Cloudflare IP
881+
f6d5eacd81a2407f8e0d81caee21e7f8 162.158.0.0/15 Cloudflare IP
882+
3d538dfc38ab471d9d3fe78332acfa4e 172.16.0.0/12 RFC1918 space
883+
f353cb8f98424837ad35382a22b9debe 172.64.0.0/13 Cloudflare IP
884+
78f3e1a0bafc41f88d4d40ad49a642e0 173.245.48.0/20 Cloudflare IP
885+
c23a545475c54c32a7681c6b508d3e80 188.114.96.0/20 Cloudflare IP
886+
f693237c9e294fe481221cbc2d7c20ef 190.93.240.0/20 Cloudflare IP
887+
6d465ab3a0994c07827ebdcf8f34d977 192.168.0.0/16 RFC1918 space
888+
1ad1e634b3664bac939086185c62faf7 197.234.240.0/22 Cloudflare IP
889+
5d2968e7b3114d8e869a379d71c8ba86 198.41.128.0/17 Cloudflare IP
890+
6a69de60b31448fa864f0a3ac5abe8d0 224.0.0.0/24 Multicast
891+
30749cce89af4ab3a80e308294f46a46 240.0.0.0/4 Class E
892+
2b32c67ea4d044628abe39f28662d8f0 255.255.255.255 all ones
893+
cc7cd828b2fb4bcfb9391c2d3ef8d068 2400:cb00::/32 Cloudflare IP
894+
b30d4cbd7dcd48729e8ebeda552e48a8 2405:8100::/32 Cloudflare IP
895+
49db60758c8344959c338a74afc9748a 2405:b500::/32 Cloudflare IP
896+
96e9eca1923c40d5a84865145f5a5d6a 2606:4700::/32 Cloudflare IP
897+
21bc52a26e10405d89b7180ddcf49302 2803:f800::/32 Cloudflare IP
898+
ff78f842188e4b869eb5389ae9ab8f41 2a06:98c0::/29 Cloudflare IP
899+
0880cdfc40b14f6fa0639522a728859d 2c0f:f248::/32 Cloudflare IP
900+
$
901+
902+
The ``result_info.cursors`` area also contains a ``before`` value for
903+
reverse scrolling.
904+
905+
As with ``per_page`` scrolling, raw mode is used.
906+
828907
DNSSEC CLI examples
829908
~~~~~~~~~~~~~~~~~~~
830909

0 commit comments

Comments
 (0)