Skip to main content

DatasetClient

Struct DatasetClient 

Source
pub struct DatasetClient { /* private fields */ }
Expand description

Client for a specific dataset.

Implementations§

Source§

impl DatasetClient

Source

pub async fn get(&self) -> ApifyClientResult<Option<Dataset>>

Fetches the dataset metadata, or None if it does not exist.

Source

pub async fn update<T: Serialize>( &self, new_fields: &T, ) -> ApifyClientResult<Dataset>

Updates the dataset metadata (e.g. name, title).

Source

pub async fn delete(&self) -> ApifyClientResult<()>

Deletes the dataset.

Source

pub async fn list_items<T: DeserializeOwned>( &self, options: DatasetListItemsOptions, ) -> ApifyClientResult<PaginationList<T>>

Lists items from the dataset.

The dataset items endpoint returns a bare JSON array (not a data envelope) and reports pagination via X-Apify-Pagination-* headers, which are surfaced in the returned PaginationList.

Source

pub fn iterate_items<T: DeserializeOwned + Send + 'static>( &self, options: DatasetListItemsOptions, ) -> ListIterator<T>

Lazily iterates over all items in the dataset, fetching pages on demand.

The idiomatic-Rust counterpart of the reference client’s async-iterable listItems/iterateItems: yields one deserialized item of type T at a time, transparently paging. The caller’s options.limit caps the total number of items yielded (unset = all); use ListIterator::with_chunk_size to control the per-page fetch size.

Server-side filters (skip_empty/clean/skip_hidden) and unwind are forwarded on every page request. Paging advances the offset by the number of underlying rows each page scanned (the x-apify-pagination-count response header), not by items.len(), matching the reference JavaScript client: a filter can scan more rows than it returns, and unwind can return more items than rows scanned, so advancing by the returned count alone would re-scan or skip rows. The listing’s reported total is never consulted, so a dataset a still-running Actor keeps pushing to is read to the end: iteration keeps requesting pages until one scans no rows (one extra, empty request past the last page with data), rather than stopping at the size the dataset had when the loop started.

If x-apify-pagination-count is ever absent, the scanned count falls back to items.len().

Source

pub async fn download_items( &self, format: DownloadItemsFormat, options: DatasetDownloadOptions, ) -> ApifyClientResult<Vec<u8>>

Downloads dataset items serialized in the given format, returning the raw bytes.

Unlike list_items, which returns parsed items, this returns the items already serialized to JSON, CSV, XLSX, XML, RSS or HTML — useful for exporting. Use DatasetDownloadOptions to control export-specific behaviour (BOM, CSV delimiter/header, XML element names, attachment disposition).

Source

pub async fn download_items_stream( &self, format: DownloadItemsFormat, options: DatasetDownloadOptions, ) -> ApifyClientResult<impl Stream<Item = ApifyClientResult<Vec<u8>>>>

Like download_items, but streams the export as it arrives instead of buffering the whole response in memory.

Returns a Stream of byte chunks; drive it with futures_util::StreamExt::next() (or pipe it through an AsyncRead adapter) to process a large export in constant memory. A gap of more than 6 minutes between chunks ends the stream with ApifyClientError::Timeout — an inactivity timeout, not a cap on the export’s total duration.

Goes through the configured HttpBackend’s streaming path instead of the buffered one, to keep the connection open — like crate::clients::log::LogClient::stream, a failed request (e.g. a 404) still surfaces the same structured crate::error::ApiError as the buffered endpoints, from reading the error body before the stream is handed back.

Source

pub async fn push_items<T: Serialize>(&self, items: &T) -> ApifyClientResult<()>

Pushes one or more items to the dataset.

items must serialize to a JSON object or an array of objects.

Source

pub async fn create_items_public_url( &self, options: DatasetListItemsOptions, expires_in_secs: Option<i64>, ) -> ApifyClientResult<String>

Builds a public URL for downloading this dataset’s items.

Mirrors the reference client’s createItemsPublicUrl: it fetches the dataset, and if the dataset exposes a URL-signing secret key (i.e. it is private), appends an HMAC-SHA256 signature so the URL grants access without an API token. expires_in_secs optionally bounds the validity of a signed URL. The URL is built from the configured public base URL. The served items are JSON; to request another export format, use create_items_public_url_with_format.

Source

pub async fn create_items_public_url_with_format( &self, options: DatasetListItemsOptions, expires_in_secs: Option<i64>, format: Option<DownloadItemsFormat>, ) -> ApifyClientResult<String>

Like create_items_public_url, but lets the caller choose the format the items are served in (JSON, CSV, XLSX, …) via a format query parameter on the generated URL. None defaults to json, matching the endpoint’s own default.

Source

pub async fn get_statistics(&self) -> ApifyClientResult<Option<Value>>

Returns statistical information about the dataset, or None if unavailable.

Trait Implementations§

Source§

impl Clone for DatasetClient

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DatasetClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more