Skip to main content

Angular OData Client

AngularODataClient is an injectable service (providedIn: "root") that wraps the HttpClient instance provided through Angular's dependency injection - it does not create its own HttpClient or configure the HttpClientModule/provideHttpClient setup, which remains the consuming application's responsibility. It works the same either way regardless of which backend that setup chooses - provideHttpClient() (XhrBackend) or provideHttpClient(withFetch()) (FetchBackend).

It supports:

  • request configuration (custom headers, query params)
  • uploading and downloading binary data (createBlob / updateBlob / getBlob)
  • customizing how the OData error message is extracted from a failed response's body (setErrorMessageRetriever)
  • automatic CSRF token handling for the OData handshake (useCsrfProtection / csrfTokenFetchUrl, see below) - this is a different mechanism than Angular's own built-in XSRF protection (withXsrfConfiguration), which only echoes back a cookie the server already set and knows nothing about the X-CSRF-Token: Fetch / Required handshake OData services use

Setup​

Install package @odata2ts/http-client-angular as runtime dependency:

npm install --save @odata2ts/http-client-angular

@angular/core, @angular/common and rxjs are peer dependencies of this package, so they are not contained in or installed through this package.

Configuration​

Use the second constructor parameter to pass your global configuration for the client. The configuration is of type AngularODataRequestConfig (from @odata2ts/http-client-angular package) and will be applied to all requests made with this client.