Include badges, installation instructions, API key setup guide,
client configuration, error handling, and code examples for all
endpoint groups: connectivity, apps, fields, files, lists, records,
and reports. Follows the same structure and detail level as the
JavaScript SDK README.
Add version.yml workflow that runs on pushes to main, parses
conventional commit messages since the last tag, determines the
semver bump (feat=minor, fix=patch, breaking=major), updates
Cargo.toml version, commits, and pushes a version tag. The tag
push triggers the existing release.yml publish workflow. Skips
chore(release) commits to prevent infinite loops.
Add ci.yml running fmt, clippy, build, and test on stable + nightly
Rust for PRs and pushes to main. Add release.yml for automated crate
publishing to crates.io on version tag pushes. Remove dead_code allow
and add crate-level doc comment with usage example.
Implement ReportInfo, ReportData, and ReportRow models. Add get_report
(with optional data format and data type params) and list_reports
(paginated) methods. Tests cover report data retrieval, format
parameters, listing reports by app, and not-found error.
Implement SaveListItemRequest and SaveListItemResponse models. Add
save_list_item (create/update via PUT) and delete_list_item methods.
Tests cover creating, updating, deleting list items and not-found error.
Implement Field model supporting base fields and polymorphic variants
(list, formula, reference fields via optional properties). Add get_field,
batch_get_fields, and list_fields endpoint methods with tests covering
basic fields, list-type fields, batch retrieval, pagination, and
not-found scenarios.
Implement App model and three endpoint methods: list_apps (paginated),
get_app (by ID), and batch_get_apps (up to 100 by IDs). Add
comprehensive tests for success, pagination, not-found, and batch
scenarios.
Implement ping() method on OnspringClient. Set up wiremock-based test
infrastructure with shared setup helper. Add tests for success and
unauthorized scenarios verifying correct headers are sent.
Set up Cargo.toml with dependencies (reqwest, serde, thiserror, tokio,
uuid, chrono). Implement OnspringClient with builder pattern and HTTP
helper methods. Define error types, enums, and paging models.