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 {} - get_next(response)[source]¶
- Get the next pagination token or index from the API response. - Parameters:
- response (requests.Response) – API response object. 
- Returns:
- A parsed HATEOAS link if the response has one, otherwise None. 
- Return type:
- ParseResult | None 
 
 - abstractmethod get_next_url(response)[source]¶
- Override this method to extract a HATEOAS link from the response. - Parameters:
- response (requests.Response) – API response object. 
- Return type:
- str | None