Description for ng2-rest. Hello world!
npm install ng2-rest
ts
import { Resource } from 'ng2-rest/browser';
`
Resource
========
Fit you existing API (not only REST) into new fluent objects with Resource
class observables. Use power of async in new angular templates;
template.html
`html
Users:
-
{{user.id}} {{user.fullName()}}
loading users...
`
component.ts
`ts
class User {
name: string;
surname: string;
id: number;
fullName() {
return Surname: ${this.surname}, Name: ${this.name};
}
}
// Express.js style url endpoint model
// you can ommit "" part is you don't wanna see response interface
// also you can ommit third argument ",User" is you don't wanna
// map response object to User class objects
const rest = Resource.create("http://yourbackend.com/api","users/:id",{'':User} )
class UserComponent {
// Prepare your beautiful interface
model = {
allUsers: () => rest.model()
.array
.get()
.observable // Observable resposne (useful for Angular 2+ html templates)
.pipe( map({ body } => body.json) ) // get all users, body.json => User[]
userBy: (id) => rest.model({id})
.get() // Promise response by default
.then({ body } => console.log(body.json)) // get user by id, body.json => User
update: async (user:User) =>{
try {
await rest.model({id:user.id}).put(user) // Promise response by default
alert('Update sucess')
} catch(e) {
alert(e)
}
}
}
constructor() { }
}
`
Specification
============
Example UrlParams[] :
[ { sort: true },{ filter: 'id,5' }, { filter: 'name,test' } ]
| Name | Parameters | Description |
| :---: | --- | ---: |
| array | changes response type to array |
| get | model, UrlParams[] | get data |
| post | model, UrlParams[] | create data |
| patch | model, UrlParams[] | change data
(effect of changing data may be diffrent with each request) |
| put | model, UrlParams[] | change data
(can be done multiple times with same effect) |
| head | model, UrlParams[] | check data |
| delete | model, UrlParams[] | remove data |
| jsonp | model, UrlParams[] | get jsonp data |
Production mode
===
Nice things to do in production mode:
1. Disable warnings.
If you don't wanna see warning, disable it like this:
`ts
if (environment.production) {
Resource.enableWarnings = false;
}
``