42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| import {Observable} from 'rxjs';
 | |
| import {HttpRequest} from './request';
 | |
| import {HttpEvent} from './response';
 | |
| 
 | |
| /**
 | |
|  * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a
 | |
|  * `HttpResponse`.
 | |
|  *
 | |
|  * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the
 | |
|  * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the
 | |
|  * `HttpBackend`.
 | |
|  *
 | |
|  * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.
 | |
|  *
 | |
|  * @publicApi
 | |
|  */
 | |
| export abstract class HttpHandler {
 | |
|   abstract handle(req: HttpRequest<any>): Observable<HttpEvent<any>>;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.
 | |
|  *
 | |
|  * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.
 | |
|  *
 | |
|  * When injected, `HttpBackend` dispatches requests directly to the backend, without going
 | |
|  * through the interceptor chain.
 | |
|  *
 | |
|  * @publicApi
 | |
|  */
 | |
| export abstract class HttpBackend implements HttpHandler {
 | |
|   abstract handle(req: HttpRequest<any>): Observable<HttpEvent<any>>;
 | |
| }
 |