https://llafuente.github.io/ng2-vs-backend/demo/
Module to create Mock API Backends for Angular 2, and if there is no handler found do a XHR.
Install through npm:
npm install --save ng2-vs-backend
Import VSBackendModule in your module
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.
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.
<script src="node_modules/dist/umd/ng2-vs-backend/ng2-vs-backend.js"></script>
<script>
// everything is exported VSBackend namespace
</script>
All documentation is auto-generated from the source via typedoc and can be viewed here: https://llafuente.github.io/ng2-vs-backend/docs/
- Install Node.js and NPM (should come with)
- Install local dev dependencies:
npm install
while current directory is this repo
Run npm start
to start a development server on port 8000 with auto reload + tests.
Run npm test
to run tests once or npm run test:watch
to continually run tests.
- Bump the version in package.json (once the module hits 1.0 this will become automatic)
npm run release
MIT