Cool features over angular Http Client.
npm install @angular-cool/http[npm-url]: https://npmjs.org/package/@angular-cool/http
[npm-image]: https://img.shields.io/npm/v/@angular-cool/http.svg
[downloads-image]: https://img.shields.io/npm/dm/@angular-cool/http.svg
[total-downloads-image]: https://img.shields.io/npm/dt/@angular-cool/http.svg
javascript
import { NgModule } from '@angular/core';
import { CoolHttpModule } from '@angular-cool/http';@NgModule({
imports: [
CoolHttpModule.forRoot(),
]
})
export class MyAppModule {}
`Features
$3
CoolHttp's api calls will always prefix your url with the baseUrl set (Great for cross origin websites)`javascript
coolHttp.registerBaseUrl('https://my.api.com/');
``javascript
coolHttp.deRegisterBaseUrl();
`$3
CoolHttp's api calls will always send cookies to cross domain requests (Great for cross origin websites)`javascript
coolHttp.setWithCredentials(true);
`$3
- getAsync(url: string, options: RequestOptions): Promise
- postAsync(url: string, data: any, options: RequestOptions): Promise
- putAsync(url: string, data: any, options: RequestOptions): Promise
- deleteAsync(url: string, options: RequestOptions): Promise
- patchAsync(url: string, data: any, options: RequestOptions): Promise
- headAsync(url: string, options: RequestOptions): Promise `javascript
import { Component, OnInit } from '@angular/core';import { CoolHttp } from '@angular-cool/http';
@Component({
selector: 'my-app'
})
export class AppComponent implements OnInit {
coolHttp: CoolHttp;
constructor(coolHttp: CoolHttp) {
this.coolHttp = coolHttp;
}
async ngOnInit() {
// await async api call
let response = await this.coolHttp.getAsync('/api/request');
console.log(response);
// or simply chain Promise
this.coolHttp.getAsync('/api/request')
.then(response => {
console.log(response);
});
}
}
`$3
- getObservable(url: string, options: RequestOptions): Observable
- postObservable(url: string, data: any, options: RequestOptions): Observable
- putObservable(url: string, data: any, options: RequestOptions): Observable
- deleteObservable(url: string, options: RequestOptions): Observable
- patchObservable(url: string, data: any, options: RequestOptions): Observable
- headObservable(url: string, options: RequestOptions): Observable$3
CoolHttp's api calls will always send these globally registered headers. (Great for authentication) `javascript
import { CoolHttp, HttpHeader } from '@angular-cool/http';coolHttp.registerGlobalHeader(new HttpHeader('MyHttpHeader', 'MyHeadersValue'));
`- registerGlobalHeader(header: HttpHeader): void
- getGlobalHeaders(): HttpHeader[]
- deregisterGlobalHeader(headerKey: string): boolean
- removeAllRegisteredGlobalHeaders(): void
$3
CoolHttp's api calls will invoke the registered request interceptors before sending the request- registerRequestInterceptor(requestInterceptor: IRequestInterceptor): void
- deregisterRequestInterceptor(requestInterceptor: IRequestInterceptor): boolean
`javascript
coolHttp.registerRequestInterceptor({
beforeRequestAsync: function(url, method, data, headers) {
return new Promise((resolve, reject) => {
// do something
// resolve with true to fully intercept request
// resolve with false to let the request continue
resolve(false);
});
}
});
`$3
CoolHttp's api calls will invoke the registered response interceptors after receiving the response- registerResponseInterceptor(responseInterceptor: IResponseInterceptor): void
- deregisterResponseInterceptor(responseInterceptor: IResponseInterceptor): boolean
`javascript
coolHttp.registerResponseInterceptor({
afterResponseAsync: function(url, method, data, headers) {
return new Promise((resolve, reject) => {
//do something
// resolve with true to fully intercept the response handling
// resolve with false to let the response handling continue
resolve(true);
});
}
});
`Automatic cookie to custom header sending
You can configure CoolHttp to copy and send a cookie value in a custom http header.`javascript
coolHttp.sendCookieValueInCustomHeader(cookieName, headerName);
``> Copyright (c) 2018 Hacklone
> https://github.com/Hacklone
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> SOFTWARE.