Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Odata Client Laravel Package

saintsystems/odata-client

A fluent PHP client for calling OData REST services, inspired by Laravel’s Query Builder. Install with Composer and use Guzzle or any PSR-17/PSR-18 HTTP provider for flexible integration.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on OData integrations. This package is a shortcut decision: instead of building a query builder, paginator, and response parser for OData REST services, we adopt a MIT-licensed library and invest our engineering time in business logic instead of protocol plumbing.
  • Roadmap sequencing for ERP/CRM connectivity. If our roadmap includes Microsoft Dynamics 365, Business Central, SharePoint, SAP, or any OData-exposing system, this unblocks that integration track with weeks-to-months of effort removed from the critical path.
  • Whether to standardize an integration layer. The package's HTTP provider abstraction (since 0.10.0) lets us swap the underlying HTTP client, which means we can commit to a plugin-based integration architecture without locking into Guzzle or any single transport.
  • Prioritizing internal tooling and data sync features. Customer sync, order ingestion, reporting dashboards, admin lookups, and one-way data migrations against OData endpoints all become low-cost features rather than bespoke projects.
  • Choosing between "thin wrapper" and "full integration platform." This library is a protocol adapter, not a full connector platform — it supports a decision to ship an integration capability quickly and defer platform-level concerns (auth orchestration, field mapping UI, retry/scheduling) to a later phase.
  • Vendor and license acceptance. MIT licensing removes procurement friction for commercial products, including resold or white-labeled features.
  • Reference point for the Saints Systems ecosystem. The README's Gravity Forms Dynamics 365 add-on tells us the vendor's commercial model is built around WordPress/Dynamics users; we are consuming the open core of a commercially-adjacent stack, which informs how much we rely on upstream versus own the integration.

When to Consider This Package

Consider adoption when:

  • Our backend is PHP or Laravel, and we want a query-builder syntax our engineers already know (it is explicitly modeled on Laravel's Query Builder) rather than learning an OData-specific DSL.
  • We need to read or write OData entities against Dynamics 365, Business Central, SharePoint, SAP, or a custom OData service, and the work is CRUD-plus-filtering rather than deeply domain-specific.
  • We want to stay unopinionated about HTTP transport — the explicit provider requirement is a feature, not overhead: it lets us inject retry, logging, and observability middleware via Guzzle handlers.
  • We value semver discipline (in effect from 1.0.0) and a recent release cadence (latest release 2025-11-04 indicates the project is alive, not abandoned).
  • We are comfortable owning the integration wrapper ourselves — abstracting the library behind our own interface so a future swap is a contained refactor.
  • We need a small, auditable dependency footprint rather than a heavyweight SDK; the surface area is narrow and the license is permissive.

Look elsewhere when:

  • We are not a PHP shop, or the integration is better served by a native SDK (e.g., Microsoft's official .NET or JS libraries, or Power Platform connectors).
  • We need built-in authentication orchestration — OAuth token acquisition, refresh, and tenant management are our responsibility, not the library's. If we want a batteries-included auth story, this is not it.
  • We need enterprise support contracts, SLAs, or security attestations. With ~160 stars, zero dependents, and a single-vendor maintenance model, upstream risk is real; adoption should be paired with an internal fork plan.
  • The work is real-time, high-volume, or streaming rather than request/response entity operations.
  • We need schema discovery, metadata code generation, or strong typing out of the box; expect to write model classes ourselves.
  • Our team would be the only users of the library in our stack — in that case, a thin internal adapter over raw HTTP may carry similar effort with less third-party risk.

How to Pitch It (Stakeholders)

For executives: This is a small, MIT-licensed PHP library that lets us connect our product to Microsoft Dynamics, Business Central, and any other OData-compatible system without building a custom API client from scratch. That removes a meaningful chunk of engineering effort from our ERP/CRM integration roadmap and turns a multi-month build into a matter of weeks. There is no license cost and no vendor lock-in — it is open source, permissively licensed, and small enough to replace if needed. The one caveat worth stating plainly: it is a young, low-adoption project maintained by a single vendor, so we should adopt it behind our own internal integration layer and budget a small amount of ongoing diligence rather than treating it as a permanent platform commitment.

For engineering: The library gives you a Laravel Query Builder-style fluent API for OData endpoints — familiar syntax, low learning curve, no custom DSL. It has been deliberately decoupled from the HTTP client since 0.10.0, so you inject Guzzle (or anything else), which means our existing retry, logging, and tracing middleware apply unchanged. It follows semver from 1.0.0 and shipped a release in November 2025, so the maintenance signal is positive. The trade-offs are explicit: auth, field mapping, schema management, and error policy are ours to own — the library is a protocol adapter, not a connector platform. Recommended approach is to wrap it in a single internal service class so the dependency is one file deep and swappable, and to pick a pinned version with a lockfile while we validate behavior against the actual tenant endpoints.

For the business case: the decision is not "is this library perfect" — it is "is this library a cheaper and faster path to a shippable ERP/CRM integration than the alternative." At MIT cost, low integration surface, and an active release cadence, the answer is yes for any OData-based roadmap item we are already planning. The residual risk is maintenance continuity, which we mitigate through abstraction and a fork-ready license rather than through procurement.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style