Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/llafuente/ng2-vs-backend
Module to create API Backends for Angular 2
https://github.com/llafuente/ng2-vs-backend
Last synced: 1 day ago
JSON representation
Module to create API Backends for Angular 2
- Host: GitHub
- URL: https://github.com/llafuente/ng2-vs-backend
- Owner: llafuente
- License: mit
- Created: 2017-02-27T11:53:00.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-02T14:59:45.000Z (almost 8 years ago)
- Last Synced: 2024-04-26T16:06:05.817Z (8 months ago)
- Language: TypeScript
- Size: 1.28 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Very simple Backend for Angular 2
[![Build Status](https://travis-ci.org/llafuente/ng2-vs-backend.svg?branch=master)](https://travis-ci.org/llafuente/ng2-vs-backend)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/llafuente/ng2-vs-backend/master/LICENSE)## Demo
https://llafuente.github.io/ng2-vs-backend/demo/## Table of contents
- [About](#about)
- [Installation](#installation)
- [Documentation](#documentation)
- [Development](#development)
- [License](#licence)## About
Module to create Mock API Backends for Angular 2, and if there is no handler found do a XHR.
## Installation
Install through npm:
```
npm install --save ng2-vs-backend
```Import VSBackendModule in your module
```typescript
import {NgModule} from '@angular/core';
import {BackendService} from './backendservice';
import {VSBackendModule} from 'ng2-vs-backend';@NgModule({
imports: [VSBackendModule],
providers: [
BackendService, // this extends BackendBaseService
]
})
export class YourModule {
constructor(backendService: BackendService) {
backendService.init(); // initialize now!
}
}
```Extend BackendBaseService with your API declaration.
```typescript
import {BackendBaseService, ParsedRequest} from 'ng2-vs-backend';
import {Injectable} from '@angular/core';
import {MockBackend} from '@angular/http/testing';
import {
BaseRequestOptions,
ResponseOptions,
Headers,
XHRBackend,
RequestOptions,
} from '@angular/http';@Injectable()
export class BackendService extends BackendBaseService {
constructor(
public backend: MockBackend,
public options: BaseRequestOptions,
public realBackend: XHRBackend
) {
super(backend, options, realBackend);
}init(): void {
super.init();
// just return a value
let countries: any[] = [
{id: 1, label: 'Spain'},
{id: 2, label: 'France'},
];
this.addValue('GET', '/api/v1/countries', countries);this.addValuePaginated('GET', '/api/v1/countries2', countries);
// handle request yourself, for example to update a country
backendService.addListener('POST', /\/api\/v1\/country\/(.*)/, (p: ParsedRequest, matches: string[]) => {
// matches is the result of the RegExp sent
let id: number = parseInt(matches[1], 10);countries[id].label = p.body.label;
return new ResponseOptions({
status: 204
});
});
}
}```
You may also find it useful to view the [demo source](https://github.com/llafuente/ng2-vs-backend/blob/master/demo/demo.ts).
### Usage without a module bundler
```// everything is exported VSBackend namespace
```
## Documentation
All documentation is auto-generated from the source via typedoc and can be viewed here:
https://llafuente.github.io/ng2-vs-backend/docs/## Development
### Prepare your environment
* Install [Node.js](http://nodejs.org/) and NPM (should come with)
* Install local dev dependencies: `npm install` while current directory is this repo### Development server
Run `npm start` to start a development server on port 8000 with auto reload + tests.### Testing
Run `npm test` to run tests once or `npm run test:watch` to continually run tests.### Release
* Bump the version in package.json (once the module hits 1.0 this will become automatic)
```bash
npm run release
```## License
MIT