Add dotenvy to dev-dependencies and call dotenvy::dotenv().ok() in
the integration test common module and all examples so env vars can
be loaded from a .env file.
Add 91 integration tests (all #[ignore]) mirroring the JavaScript SDK's
integration test suite. Tests cover all endpoints: ping, apps, fields,
records, files, lists, and reports with success, auth, access, and
not-found scenarios.
Add 7 runnable examples (cargo run --example <name>) for quick manual
smoke testing against a real Onspring instance.
Both use env vars (API_BASE_URL, SANDBOX_API_KEY, TEST_*) matching the
JavaScript SDK setup.
Also rename crate to onspring-api-sdk-rust with [lib] name = "onspring"
so imports remain `use onspring::*`.
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.