Package Exports
- @hapiness/http
- @hapiness/http/observable/add/validateResponse
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@hapiness/http) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Http Module
Http Module for the Hapiness framework, allowing user to deal with http request.
Table of contents
- Using http module inside Hapiness application
- Validate Response
- API in Detail
- Contributing
- Change History
- Maintainers
- License
Using http module inside Hapiness application
yarn or npm it in your package.json
$ npm install --save @hapiness/http
or
$ yarn add @hapiness/http"dependencies": {
"@hapiness/core": "^1.0.0-rc.7",
"@hapiness/http": "^1.0.0-rc.7",
//...
}
//...import HttpModule
import { HapinessModule } from '@hapiness/core';
import { HttpModule } from '@hapiness/http';
@HapinessModule({
version: '1.0.0',
declarations: [
LibWithHttpCalls
],
imports: [
HttpModule
]
})
class HapinessModuleNeedsHttpModule {}use it anywhere
You can use HttpService anywhere in your module with dependency injection.
import { Lib } from '@hapiness/core';
import { HttpService } from '@hapiness/http';
@Lib()
class LibWithHttpCalls {
constructor(private _http: HttpService){}
crawlWebPage(): void {
this._http.get('http://www.google.fr').subscribe(
(data) => {
if (data.response.statusCode === 200) {
console.log(data.body); // Show the HTML for the Google homepage.
}
},
(err) => console.error(err) // Show error in console
);
}
}validateResponse operator
Format your data with the Joi Schema validation and throw an error in the Observable if statusCode >= 400
validateResponse(<Joi.Schema>, [ignoredStatusCodes?])
import { Lib } from '@hapiness/core';
import { HttpService } from '@hapiness/http';
import '@hapiness/http/observable/add/validateResponse';
@Lib()
class LibWithHttpCalls {
constructor(private _http: HttpService){}
crawlWebPage(): void {
this._http.get('http://my-api/data')
.validateResponse(MySchema)
.subscribe(
(data) => console.log(data),
(err) => console.error(err) // Show error in console
);
}
}API in Detail
This module is an encapsulation of Rx-Http-Request library to allow their features inside Hapiness framework.
Methods implemented are:
.request.get(uri[, options]).getBuffer(uri[, options]).post(uri[, options]).put(uri[, options]).patch(uri[, options]).delete(uri[, options]).head(uri[, options]).jar().cookie(str)
If you want to have all details for these methods, see Rx-Http-Request's API details.
Contributing
To set up your development environment:
- clone the repo to your workspace,
- in the shell
cdto the main folder, - hit
npm or yarn install, - run
npm or yarn run test.- It will lint the code and execute all tests.
- The test coverage report can be viewed from
./coverage/lcov-report/index.html.
Change History
- v1.0.0-rc.7 (2017-09-14)
- validateResponse operator.
- Latest packages' versions.
- v1.0.0-rc.6 (2017-07-17)
- Latest packages' versions.
- Update dependencies declarations.
- v1.0.0-rc.4 (2017-07-10)
- Latest packages' versions.
- Update tests for latest
tslintversion. - Module version related to core version.
- v1.0.0-rc.3 (2017-07-04)
- Latest packages' versions.
- Module version related to core version.
- v1.0.0-beta.6 (2017-05-26)
- Latest packages' versions.
- Module version related to core version.
- v1.0.0-beta.5 (2017-05-15)
- Latest packages' versions.
- Module version related to core version.
- v1.0.0-beta.4 (2017-05-15)
- Latest packages' versions.
- Module version related to core version.
- v1.0.0-beta.3 (2017-05-12)
- Latest packages' versions.
- Add check files in packaging process.
- Extended
tsconfig. - Module version related to core version.
- v1.0.0-beta.2 (2017-04-18)
- Create
Httpmodule. - Implementation of Rx-Http-Request API.
- Tests module API.
- Documentation.
- Module version related to core version.
- Create
Maintainers
![]() |
|||
| Julien Fauville | Antoine Gomez | Sébastien Ritz | Nicolas Jessel |
License
Copyright (c) 2017 Hapiness Licensed under the MIT license.
