Skip to main content

AngularBackend

Angular-specific HttpBackend implementation. Delegates all HTTP traffic to Angular's own HttpClient instead of the browser fetch API, so Angular's interceptor chain, HttpContext, and DI system remain fully active.

OpraClientModule.registerClient() wires AngularBackend automatically. Use this class directly only when you are constructing a client manually.


Class

class AngularBackend extends HttpBackend

Constructor

new AngularBackend(
httpClient: HttpClient,
serviceUrl: string,
options?: AngularBackend.Options,
)
ParameterTypeDescription
httpClientHttpClientAngular's injected HttpClient
serviceUrlstringBase URL of the OPRA service
optionsAngularBackend.OptionsOptional defaults and interceptors

Properties

PropertyTypeDescription
httpClientHttpClientThe Angular HttpClient instance
serviceUrlstringNormalized base URL
defaultsAngularBackend.RequestDefaultsDefault headers and query params merged into every request

Protected methods

Override these to customize behavior without reimplementing the full transport.

MethodDescription
send(request)Calls httpClient.request(request) — override to intercept at the lowest level
prepareRequest(init)Applies defaults, normalizes the URL, serializes the body
createResponse(init)Constructs the HttpResponse instance

Usage

// api-client.token.ts
export const API_CLIENT = new InjectionToken<OpraAngularClient>('API_CLIENT');

// app.module.ts
@NgModule({
imports: [
OpraClientModule.registerClient({
serviceUrl: 'https://api.example.com',
token: API_CLIENT,
defaults: {
headers: new Headers({ Authorization: 'Bearer token' }),
},
}),
],
})
export class AppModule {}

// orders.service.ts
@Injectable({ providedIn: 'root' })
export class OrdersService {
constructor(@Inject(API_CLIENT) private client: OpraAngularClient) {}

getOrders() {
return this.client.get<Order[]>('orders').getBody();
}

createOrder(input: Order) {
return this.client.post<Order>('orders', input).getBody();
}
}

Interfaces

AngularBackend.Options

interface Options extends HttpBackend.Options {
defaults?: RequestDefaults;
}

AngularBackend.RequestInit

Extends HttpBackend.RequestInit with Angular-specific fields.

interface RequestInit extends HttpBackend.RequestInit {
context?: HttpContext;
reportProgress?: boolean;
params?: HttpParams;
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
withCredentials?: boolean;
}

AngularBackend.RequestOptions

Subset exposed as per-request options via .options() on HttpRequestObservable.

interface RequestOptions {
context?: HttpContext;
reportProgress?: boolean;
withCredentials?: boolean;
}

AngularBackend.RequestDefaults

type RequestDefaults = {
headers: Headers;
params: URLSearchParams;
reportProgress?: boolean;
withCredentials?: boolean;
}

See also