13 Commits

Author SHA1 Message Date
Pete Bacon Darwin
7dfa446c4a fix(common): temporarily re-export and deprecate XhrFactory ()
The moved `XhrFactory` still needs to be available from `@angular/common/http`
for some libraries that were built prior to 12.0.0, otherwise they cannot be
used in applications built post-12.0.0.

This commit adds back the re-export of `XhrFactory` and deprecates it.

PR Close 
2021-04-01 11:26:11 -07:00
Alan Agius
c4628f29be refactor(common): remove XhrFactory re-export from @angular/common/http ()
This was only done temporary to allow migration in Google3. The removal breaking change message has already been included in 

PR Close 
2021-03-30 16:57:18 -07:00
Alan Agius
e0028e5741 fix(platform-browser): configure XhrFactory to use BrowserXhr ()
With this change we move `XhrFactory` to the root entrypoint of `@angular/commmon`, this is needed so that we can configure `XhrFactory` DI token at a platform level, and not add a dependency  between `@angular/platform-browser` and `@angular/common/http`.

Currently, when using `HttpClientModule` in a child module on the server, `ReferenceError: XMLHttpRequest is not defined` is being thrown because the child module has its own Injector and causes `XhrFactory` provider to be configured to use `BrowserXhr`.
Therefore, we should configure the `XhrFactory` at a platform level similar to other Browser specific providers.

BREAKING CHANGE:

`XhrFactory` has been moved from `@angular/common/http` to `@angular/common`.

**Before**
```ts
import {XhrFactory} from '@angular/common/http';
```

**After**
```ts
import {XhrFactory} from '@angular/common';
```

Closes 

PR Close 
2021-03-29 15:14:16 -07:00
FDIM
1644d64398 feat(compiler-cli): introduce HttpContext request context ()
A long-requested feature for HttpClient is the ability to store and retrieve
custom metadata for requests, especially in interceptors. This commit
implements this functionality via a new context object for requests.

Each outgoing HttpRequest now has an associated "context", an instance of
the HttpContext class. An HttpContext can be provided when making a request,
or if not then an empty context is created for the new request. This context
shares its lifecycle with the entire request, even across operations that
change the identity of the HttpRequest instance such as RxJS retries.

The HttpContext functions as an expando. Users can create typed tokens as instances of HttpContextToken, and
read/write a value for the key from any HttpContext object.

This commit implements the HttpContext functionality. A followup commit will
add angular.io documentation.

PR Close 
2021-03-15 10:33:48 -07:00
Quentin Focheux
6fe3a1de7f feat(http): expose a list of human-readable http status codes ()
They aim to improve code readability.
Since they are defined by `const enum` they have zero runtime performance impact
over just using constant literals.

Fixes 

PR Close 
2021-01-28 09:10:48 -08:00
Ray Logel
b33b89d441 fix(common): add HttpParamsOptions to the public api ()
The `HttpParamsOptions` was not documented or included in the public API even
though it is a constructor argument of `HttpParams` which is a part of the
public API. This commit adds the `HttpParamsOptions` into the exports, thus
making it a part of the public API.

Resolves 

PR Close 
2020-11-18 09:11:56 -08:00
Joey Perrott
d1ea1f4c7f build: update license headers to reference Google LLC ()
Update the license headers throughout the repository to reference Google LLC
rather than Google Inc, for the required license headers.

PR Close 
2020-05-26 14:26:58 -04:00
Santosh Yadav
5c18f23788 fix(common): expose the HttpUploadProgressEvent interface as public API ()
Fixes 

PR Close 
2019-06-07 08:47:47 -07:00
Vikram Subramanian
60aa943e2d fix(platform-server): avoid dependency cycle when using http interceptor ()
Fixes .

When a HTTP Interceptor injects HttpClient it causes a DI cycle. This fix is to use Injector to lazily inject HTTP_INTERCEPTORS while setting up the HttpHandler on the server so as to break the cycle.

PR Close 
2018-06-01 08:33:45 -07:00
Alex Rickabaugh
3ecc5e5398 fix(common): rename HttpXsrfModule to HttpClientXsrfModule 2017-07-14 12:40:52 -07:00
Alex Rickabaugh
dd04f09483 feat(common): on-by-default XSRF support in HttpClient ()
Fixes 
2017-07-13 17:22:02 -07:00
Alex Rickabaugh
c81ad9d19d feat(common): two missing features in HttpClient ()
- Add params to HttpRequest API
- Add optional description to testing APIs
2017-07-07 14:56:36 -07:00
Alex Rickabaugh
37797e2b4e feat(common): new HttpClient API
HttpClient is an evolution of the existing Angular HTTP API, which exists
alongside of it in a separate package, @angular/common/http. This structure
ensures that existing codebases can slowly migrate to the new API.

The new API improves significantly on the ergonomics and features of the legacy
API. A partial list of new features includes:

* Typed, synchronous response body access, including support for JSON body types
* JSON is an assumed default and no longer needs to be explicitly parsed
* Interceptors allow middleware logic to be inserted into the pipeline
* Immutable request/response objects
* Progress events for both request upload and response download
* Post-request verification & flush based testing framework
2017-07-07 12:09:32 -07:00