singer_sdk.pagination.BaseHATEOASPaginator¶
- class singer_sdk.pagination.BaseHATEOASPaginator[source]¶
- Paginator class for APIs supporting HATEOAS links in their response bodies. - HATEOAS stands for “Hypermedia as the Engine of Application State”. See https://en.wikipedia.org/wiki/HATEOAS. - This paginator expects responses to have a key “next” with a value like “https://api.com/link/to/next-item”. - The - current_valueattribute of this paginator is a- urllib.parse.ParseResultobject. This object contains the following attributes:- scheme 
- netloc 
- path 
- params 
- query 
- fragment 
 - That means you can access and parse the query params in your stream like this: - class MyHATEOASPaginator(BaseHATEOASPaginator): def get_next_url(self, response): return response.json().get("next") class MyStream(Stream): def get_new_paginator(self): return MyHATEOASPaginator() def get_url_params(self, next_page_token) -> dict: if next_page_token: return dict(parse_qsl(next_page_token.query)) return {}