feat: deprecate @angular/http in favor of @angular/common/http (#18906)

As of 5.0, @angular/http is deprecated. @angular/common/http will
be the official HTTP API in Angular going forward.

PR Close #18906
This commit is contained in:
Alex Rickabaugh
2017-08-28 10:29:35 -07:00
committed by Miško Hevery
parent 1ef558b57c
commit 72c7b6edea
34 changed files with 136 additions and 136 deletions

View File

@ -20,7 +20,7 @@ import {HttpEvent} from './response';
*
* In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.
*
* @experimental
* @stable
*/
export abstract class HttpHandler {
abstract handle(req: HttpRequest<any>): Observable<HttpEvent<any>>;
@ -34,7 +34,7 @@ export abstract class HttpHandler {
* When injected, `HttpBackend` dispatches requests directly to the backend, without going
* through the interceptor chain.
*
* @experimental
* @stable
*/
export abstract class HttpBackend implements HttpHandler {
abstract handle(req: HttpRequest<any>): Observable<HttpEvent<any>>;

View File

@ -46,7 +46,7 @@ function addBody<T>(
}
/**
* @experimental
* @stable
*/
export type HttpObserve = 'body' | 'events' | 'response';
@ -57,7 +57,7 @@ export type HttpObserve = 'body' | 'events' | 'response';
* Each request method has multiple signatures, and the return type varies according to which
* signature is called (mainly the values of `observe` and `responseType`).
*
* @experimental
* @stable
*/
@Injectable()
export class HttpClient {

View File

@ -14,7 +14,7 @@ interface Update {
/**
* Immutable set of Http headers, with lazy parsing.
* @experimental
* @stable
*/
export class HttpHeaders {
/**

View File

@ -22,7 +22,7 @@ import {HttpEvent} from './response';
* In rare cases, interceptors may wish to completely handle a request themselves,
* and not delegate to the remainder of the chain. This behavior is allowed.
*
* @experimental
* @stable
*/
export interface HttpInterceptor {
/**
@ -47,7 +47,7 @@ export interface HttpInterceptor {
/**
* `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.
*
* @experimental
* @stable
*/
export class HttpInterceptorHandler implements HttpHandler {
constructor(private next: HttpHandler, private interceptor: HttpInterceptor) {}
@ -61,7 +61,7 @@ export class HttpInterceptorHandler implements HttpHandler {
* A multi-provider token which represents the array of `HttpInterceptor`s that
* are registered.
*
* @experimental
* @stable
*/
export const HTTP_INTERCEPTORS = new InjectionToken<HttpInterceptor[]>('HTTP_INTERCEPTORS');

View File

@ -35,7 +35,7 @@ export const JSONP_ERR_WRONG_RESPONSE_TYPE = 'JSONP requests must use Json respo
*
* In the browser, this should always be the `window` object.
*
* @experimental
* @stable
*/
export abstract class JsonpCallbackContext { [key: string]: (data: any) => void; }
@ -43,7 +43,7 @@ export abstract class JsonpCallbackContext { [key: string]: (data: any) => void;
* `HttpBackend` that only processes `HttpRequest` with the JSONP method,
* by performing JSONP style requests.
*
* @experimental
* @stable
*/
@Injectable()
export class JsonpClientBackend implements HttpBackend {
@ -207,7 +207,7 @@ export class JsonpClientBackend implements HttpBackend {
* An `HttpInterceptor` which identifies requests with the method JSONP and
* shifts them to the `JsonpClientBackend`.
*
* @experimental
* @stable
*/
@Injectable()
export class JsonpInterceptor {

View File

@ -23,7 +23,7 @@ import {HttpXsrfCookieExtractor, HttpXsrfInterceptor, HttpXsrfTokenExtractor, XS
*
* Meant to be used as a factory function within `HttpClientModule`.
*
* @experimental
* @stable
*/
export function interceptingHandler(
backend: HttpBackend, interceptors: HttpInterceptor[] | null = []): HttpHandler {
@ -40,7 +40,7 @@ export function interceptingHandler(
* Ordinarily JSONP callbacks are stored on the `window` object, but this may not exist
* in test environments. In that case, callbacks are stored on an anonymous object instead.
*
* @experimental
* @stable
*/
export function jsonpCallbackContext(): Object {
if (typeof window === 'object') {
@ -59,7 +59,7 @@ export function jsonpCallbackContext(): Object {
* If no such names are provided, the default is to use `X-XSRF-TOKEN` for
* the header name and `XSRF-TOKEN` for the cookie name.
*
* @experimental
* @stable
*/
@NgModule({
providers: [
@ -107,7 +107,7 @@ export class HttpClientXsrfModule {
* Interceptors can be added to the chain behind `HttpClient` by binding them
* to the multiprovider for `HTTP_INTERCEPTORS`.
*
* @experimental
* @stable
*/
@NgModule({
imports: [
@ -140,7 +140,7 @@ export class HttpClientModule {
* Without this module, Jsonp requests will reach the backend
* with method JSONP, where they'll be rejected.
*
* @experimental
* @stable
*/
@NgModule({
providers: [

View File

@ -11,7 +11,7 @@
*
* Used by `HttpParams`.
*
* @experimental
* @stable
**/
export interface HttpParameterCodec {
encodeKey(key: string): string;
@ -25,7 +25,7 @@ export interface HttpParameterCodec {
* A `HttpParameterCodec` that uses `encodeURIComponent` and `decodeURIComponent` to
* serialize and parse URL parameter keys and values.
*
* @experimental
* @stable
*/
export class HttpUrlEncodingCodec implements HttpParameterCodec {
encodeKey(k: string): string { return standardEncoding(k); }
@ -79,7 +79,7 @@ interface Update {
*
* This class is immutable - all mutation operations return a new instance.
*
* @experimental
* @stable
*/
export class HttpParams {
private map: Map<string, string[]>|null;

View File

@ -73,7 +73,7 @@ function isFormData(value: any): value is FormData {
* assumed to be immutable. To modify a `HttpRequest`, the `clone`
* method should be used.
*
* @experimental
* @stable
*/
export class HttpRequest<T> {
/**

View File

@ -11,7 +11,7 @@ import {HttpHeaders} from './headers';
/**
* Type enumeration for the different kinds of `HttpEvent`.
*
* @experimental
* @stable
*/
export enum HttpEventType {
/**
@ -48,7 +48,7 @@ export enum HttpEventType {
/**
* Base interface for progress events.
*
* @experimental
* @stable
*/
export interface HttpProgressEvent {
/**
@ -71,7 +71,7 @@ export interface HttpProgressEvent {
/**
* A download progress event.
*
* @experimental
* @stable
*/
export interface HttpDownloadProgressEvent extends HttpProgressEvent {
type: HttpEventType.DownloadProgress;
@ -87,7 +87,7 @@ export interface HttpDownloadProgressEvent extends HttpProgressEvent {
/**
* An upload progress event.
*
* @experimental
* @stable
*/
export interface HttpUploadProgressEvent extends HttpProgressEvent {
type: HttpEventType.UploadProgress;
@ -98,7 +98,7 @@ export interface HttpUploadProgressEvent extends HttpProgressEvent {
* when a request may be retried multiple times, to distinguish between
* retries on the final event stream.
*
* @experimental
* @stable
*/
export interface HttpSentEvent { type: HttpEventType.Sent; }
@ -108,7 +108,7 @@ export interface HttpSentEvent { type: HttpEventType.Sent; }
* Grouping all custom events under this type ensures they will be handled
* and forwarded by all implementations of interceptors.
*
* @experimental
* @stable
*/
export interface HttpUserEvent<T> { type: HttpEventType.User; }
@ -118,7 +118,7 @@ export interface HttpUserEvent<T> { type: HttpEventType.User; }
*
* It bundles the Error object with the actual response body that failed to parse.
*
* @experimental
* @stable
*/
export interface HttpJsonParseError {
error: Error;
@ -130,7 +130,7 @@ export interface HttpJsonParseError {
*
* Typed according to the expected type of the response.
*
* @experimental
* @stable
*/
export type HttpEvent<T> =
HttpSentEvent | HttpHeaderResponse | HttpResponse<T>| HttpProgressEvent | HttpUserEvent<T>;
@ -138,7 +138,7 @@ export type HttpEvent<T> =
/**
* Base class for both `HttpResponse` and `HttpHeaderResponse`.
*
* @experimental
* @stable
*/
export abstract class HttpResponseBase {
/**
@ -206,7 +206,7 @@ export abstract class HttpResponseBase {
* `HttpHeaderResponse` is a `HttpEvent` available on the response
* event stream, only when progress events are requested.
*
* @experimental
* @stable
*/
export class HttpHeaderResponse extends HttpResponseBase {
/**
@ -247,7 +247,7 @@ export class HttpHeaderResponse extends HttpResponseBase {
* `HttpResponse` is a `HttpEvent` available on the response event
* stream.
*
* @experimental
* @stable
*/
export class HttpResponse<T> extends HttpResponseBase {
/**
@ -297,7 +297,7 @@ export class HttpResponse<T> extends HttpResponseBase {
* will contain either a wrapped Error object or the error response returned
* from the server.
*
* @experimental
* @stable
*/
export class HttpErrorResponse extends HttpResponseBase implements Error {
readonly name = 'HttpErrorResponse';

View File

@ -34,14 +34,14 @@ function getResponseUrl(xhr: any): string|null {
/**
* A wrapper around the `XMLHttpRequest` constructor.
*
* @experimental
* @stable
*/
export abstract class XhrFactory { abstract build(): XMLHttpRequest; }
/**
* A factory for @{link HttpXhrBackend} that uses the `XMLHttpRequest` browser API.
*
* @experimental
* @stable
*/
@Injectable()
export class BrowserXhr implements XhrFactory {
@ -63,7 +63,7 @@ interface PartialResponse {
* An `HttpBackend` which uses the XMLHttpRequest API to send
* requests to a backend server.
*
* @experimental
* @stable
*/
@Injectable()
export class HttpXhrBackend implements HttpBackend {

View File

@ -21,7 +21,7 @@ export const XSRF_HEADER_NAME = new InjectionToken<string>('XSRF_HEADER_NAME');
/**
* Retrieves the current XSRF token to use with the next outgoing request.
*
* @experimental
* @stable
*/
export abstract class HttpXsrfTokenExtractor {
/**

View File

@ -13,7 +13,7 @@ import {TestRequest} from './request';
/**
* Defines a matcher for requests based on URL, method, or both.
*
* @experimental
* @stable
*/
export interface RequestMatch {
method?: string;
@ -24,7 +24,7 @@ export interface RequestMatch {
* Controller to be injected into tests, that allows for mocking and flushing
* of requests.
*
* @experimental
* @stable
*/
export abstract class HttpTestingController {
/**

View File

@ -25,7 +25,7 @@ import {TestRequest} from './request';
* requests were made and then flush them. In the end, a verify() method asserts
* that no unexpected requests were made.
*
* @experimental
* @stable
*/
@Injectable()
export class HttpClientTestingBackend implements HttpBackend, HttpTestingController {

View File

@ -18,7 +18,7 @@ import {HttpClientTestingBackend} from './backend';
*
* Inject `HttpTestingController` to expect and flush requests in your tests.
*
* @experimental
* @stable
*/
@NgModule({
imports: [

View File

@ -15,7 +15,7 @@ import {Observer} from 'rxjs/Observer';
* This interface allows access to the underlying `HttpRequest`, and allows
* responding with `HttpEvent`s or `HttpErrorResponse`s.
*
* @experimental
* @stable
*/
export class TestRequest {
/**

View File

@ -13,7 +13,7 @@ import {Injectable} from '@angular/core';
*
* Take care not to evaluate this in non-browser contexts.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class BrowserXhr {

View File

@ -24,7 +24,7 @@ const JSONP_ERR_WRONG_METHOD = 'JSONP requests must use GET request method.';
/**
* Abstract base class for an in-flight JSONP request.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export abstract class JSONPConnection implements Connection {
/**
@ -141,7 +141,7 @@ export class JSONPConnection_ extends JSONPConnection {
/**
* A {@link ConnectionBackend} that uses the JSONP strategy of making requests.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export abstract class JSONPBackend extends ConnectionBackend {}

View File

@ -29,7 +29,7 @@ const XSSI_PREFIX = /^\)\]\}',?\n/;
* This class would typically not be created or interacted with directly inside applications, though
* the {@link MockConnection} may be interacted with in tests.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class XHRConnection implements Connection {
request: Request;
@ -188,7 +188,7 @@ export class XHRConnection implements Connection {
* with different `cookieName` and `headerName` values. See the main HTTP documentation for more
* details.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class CookieXSRFStrategy implements XSRFStrategy {
constructor(
@ -226,7 +226,7 @@ export class CookieXSRFStrategy implements XSRFStrategy {
* }
* }
* ```
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class XHRBackend implements ConnectionBackend {

View File

@ -37,7 +37,7 @@ import {URLSearchParams} from './url_search_params';
* console.log('options.url:', options.url); // https://google.com
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class RequestOptions {
/**
@ -200,7 +200,7 @@ export class RequestOptions {
* console.log('req.url:', req.url); // https://google.com
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class BaseRequestOptions extends RequestOptions {

View File

@ -39,7 +39,7 @@ import {ResponseOptionsArgs} from './interfaces';
* console.log('res.json():', res.json()); // Object {name: "Jeff"}
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class ResponseOptions {
// TODO: FormData | Blob
@ -156,7 +156,7 @@ export class ResponseOptions {
* console.log('res.text():', res.text()); // Angular;
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class BaseResponseOptions extends ResponseOptions {

View File

@ -8,7 +8,7 @@
/**
* Supported http methods.
* @experimental
* @deprecated use @angular/common/http instead
*/
export enum RequestMethod {
Get,
@ -24,7 +24,7 @@ export enum RequestMethod {
* All possible states in which a connection can be, based on
* [States](http://www.w3.org/TR/XMLHttpRequest/#states) from the `XMLHttpRequest` spec, but with an
* additional "CANCELLED" state.
* @experimental
* @deprecated use @angular/common/http instead
*/
export enum ReadyState {
Unsent,
@ -38,7 +38,7 @@ export enum ReadyState {
/**
* Acceptable response types to be associated with a {@link Response}, based on
* [ResponseType](https://fetch.spec.whatwg.org/#responsetype) from the Fetch spec.
* @experimental
* @deprecated use @angular/common/http instead
*/
export enum ResponseType {
Basic,
@ -50,7 +50,7 @@ export enum ResponseType {
/**
* Supported content type to be automatically associated with a {@link Request}.
* @experimental
* @deprecated use @angular/common/http instead
*/
export enum ContentType {
NONE,
@ -64,7 +64,7 @@ export enum ContentType {
/**
* Define which buffer to use to store the response
* @experimental
* @deprecated use @angular/common/http instead
*/
export enum ResponseContentType {
Text,

View File

@ -32,7 +32,7 @@
* console.log(thirdHeaders.get('X-My-Custom-Header')); //'Angular'
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class Headers {
/** @internal header names are lower case */

View File

@ -98,7 +98,7 @@ function mergeOptions(
* http.get('request-from-mock-backend.json').subscribe((res:Response) => doSomething(res));
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class Http {
@ -186,7 +186,7 @@ export class Http {
/**
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class Jsonp extends Http {

View File

@ -40,7 +40,7 @@ export function jsonpFactory(jsonpBackend: JSONPBackend, requestOptions: Request
/**
* The module that includes http's providers
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@NgModule({
providers: [
@ -60,7 +60,7 @@ export class HttpModule {
/**
* The module that includes jsonp's providers
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@NgModule({
providers: [

View File

@ -17,14 +17,14 @@ import {URLSearchParams} from './url_search_params';
* The primary purpose of a `ConnectionBackend` is to create new connections to fulfill a given
* {@link Request}.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export abstract class ConnectionBackend { abstract createConnection(request: any): Connection; }
/**
* Abstract class from which real connections are derived.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export abstract class Connection {
readyState: ReadyState;
@ -35,7 +35,7 @@ export abstract class Connection {
/**
* An XSRFStrategy configures XSRF protection (e.g. via headers) on an HTTP request.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export abstract class XSRFStrategy { abstract configureRequest(req: Request): void; }
@ -43,7 +43,7 @@ export abstract class XSRFStrategy { abstract configureRequest(req: Request): vo
* Interface for options to construct a RequestOptions, based on
* [RequestInit](https://fetch.spec.whatwg.org/#requestinit) from the Fetch spec.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export interface RequestOptionsArgs {
url?: string|null;
@ -66,7 +66,7 @@ export interface RequestArgs extends RequestOptionsArgs { url: string|null; }
* Interface for options to construct a Response, based on
* [ResponseInit](https://fetch.spec.whatwg.org/#responseinit) from the Fetch spec.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export interface ResponseOptionsArgs {
body?: string|Object|FormData|ArrayBuffer|Blob|null;

View File

@ -52,7 +52,7 @@ import {URLSearchParams} from './url_search_params';
* });
* ```
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class Request extends Body {
/**

View File

@ -32,7 +32,7 @@ import {Headers} from './headers';
* can be accessed many times. There are other differences in the implementation, but this is the
* most significant.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class Response extends Body {
/**

View File

@ -22,7 +22,7 @@ function paramParser(rawParams: string = ''): Map<string, string[]> {
return map;
}
/**
* @experimental
* @deprecated use @angular/common/http instead
**/
export class QueryEncoder {
encodeKey(k: string): string { return standardEncoding(k); }
@ -76,7 +76,7 @@ function standardEncoding(v: string): string {
*
* let params = new URLSearchParams('', new MyQueryEncoder());
* ```
* @experimental
* @deprecated use @angular/common/http instead
*/
export class URLSearchParams {
paramsMap: Map<string, string[]>;

View File

@ -14,6 +14,6 @@
import {Version} from '@angular/core';
/**
* @stable
* @deprecated use @angular/common/http instead
*/
export const VERSION = new Version('0.0.0-PLACEHOLDER');

View File

@ -17,7 +17,7 @@ import {take} from 'rxjs/operator/take';
*
* Mock Connection to represent a {@link Connection} for tests.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
export class MockConnection implements Connection {
// TODO Name `readyState` should change to be more generic, and states could be made to be more
@ -190,7 +190,7 @@ export class MockConnection implements Connection {
*
* This method only exists in the mock implementation, not in real Backends.
*
* @experimental
* @deprecated use @angular/common/http instead
*/
@Injectable()
export class MockBackend implements ConnectionBackend {