16.5.19 • Published 13 days ago

ng2-rest v16.5.19

Weekly downloads
465
License
MIT
Repository
github
Last release
13 days ago

ng2-rest

Robust isomorphic REST framework for browser (Angular, React etc.) and backend (NodeJS) JavaScript/TypeScript apps.

Features:

  • Compatible with Angular (2+) (newest 13,14 also...) , React, Vue , NodeJS (works everywhere)
  • Compatible with RxJS operators (exhaustMap, switchMap, request cancelation etc.)
  • Based on axios => excellent alternative to Angular's HttpClient
  • JSONP api request handling
  • Transfer class instance from server to client and back
  • Elegant way of dealing with REST api ( similar to ExpressJS routes definitions )

(more documentation soon... )

To install this package run:

npm install ng2-rest --save

Import Resource class:

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

Users:
<ul   *ngIf="model.allUsers() | async; else loader; let users" >

  <li  *ngFor="let user of users"> 
  		{{user.id}} {{user.fullName()}} 
		  <br>
		<input type="name" [(NgModel)]="user.name" >
		<button (click)="model.update(user)" > Update </button>
  </li>

</ul>

<ng-template #loader> loading users...  </ng-template>

component.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 "<User>" 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<User>("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' } ]

NameParametersDescription
.array.get,post,put,head,delete,jsonpfor everything, but with arrays
getUrlParams[]get model by parameters
postmodel, UrlParams[]post object model
putmodel, UrlParams[]put object model
headmodel, UrlParams[]get head for model
deleteUrlParams[]remove object by params
jsonpUrlParams[]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:

if (environment.production) {
  Resource.enableWarnings = false;
}

Angular 2+ ngZone

If you are using Angular 2+ you need to do this in your root app.component:

constructor(zone:NgZone) {
    Resource.initAngularNgZone(zone)
}
16.5.19

13 days ago

16.5.18

15 days ago

16.5.16

23 days ago

16.5.17

23 days ago

16.5.15

23 days ago

16.5.14

27 days ago

16.5.13

2 months ago

16.5.12

2 months ago

16.5.11

3 months ago

16.5.10

3 months ago

16.5.9

3 months ago

16.5.8

3 months ago

16.5.7

3 months ago

16.5.6

4 months ago

16.5.5

4 months ago

16.5.4

4 months ago

16.5.3

4 months ago

16.5.2

5 months ago

16.5.1

5 months ago

16.0.15

7 months ago

13.2.8

11 months ago

13.2.9

11 months ago

13.2.6

11 months ago

13.2.7

11 months ago

16.0.14

10 months ago

16.0.12

11 months ago

16.0.10

11 months ago

16.0.11

11 months ago

13.2.4

1 year ago

13.2.5

1 year ago

13.2.2

1 year ago

13.2.3

1 year ago

13.2.1

1 year ago

13.1.11

1 year ago

13.1.12

1 year ago

13.1.13

1 year ago

13.1.9

1 year ago

13.1.10

1 year ago

13.1.7

1 year ago

13.1.8

1 year ago

13.1.5

1 year ago

13.1.6

1 year ago

13.1.3

1 year ago

13.1.4

1 year ago

13.1.1

1 year ago

13.1.2

1 year ago

13.0.33

2 years ago

13.0.34

2 years ago

13.0.21

2 years ago

13.0.22

2 years ago

13.0.23

2 years ago

13.0.24

2 years ago

13.0.29

2 years ago

13.0.30

2 years ago

13.0.16

2 years ago

13.0.17

2 years ago

13.0.18

2 years ago

13.0.19

2 years ago

13.0.20

2 years ago

13.0.10

2 years ago

13.0.11

2 years ago

13.0.12

2 years ago

13.0.13

2 years ago

13.0.14

2 years ago

12.0.3

2 years ago

13.0.8

2 years ago

13.0.9

2 years ago

13.0.6

2 years ago

13.0.7

2 years ago

13.0.4

2 years ago

13.0.5

2 years ago

13.0.3

2 years ago

11.0.39

3 years ago

11.0.37

3 years ago

11.0.38

3 years ago

11.0.35

3 years ago

11.0.36

3 years ago

11.0.42

3 years ago

11.0.40

3 years ago

11.0.41

3 years ago

11.0.34

3 years ago

11.0.28

3 years ago

11.0.29

3 years ago

11.0.26

3 years ago

11.0.25

3 years ago

11.0.24

3 years ago

11.0.22

3 years ago

11.0.23

3 years ago

11.0.20

3 years ago

11.0.21

3 years ago

11.0.18

3 years ago

11.0.19

3 years ago

11.0.14

3 years ago

11.0.13

3 years ago

11.0.12

3 years ago

11.0.10

3 years ago

11.0.11

3 years ago

11.0.8

3 years ago

11.0.9

3 years ago

11.0.7

3 years ago

11.0.6

3 years ago

11.0.5

3 years ago

11.0.4

4 years ago

11.0.3

4 years ago

11.0.2

4 years ago

11.0.1

4 years ago

10.0.4

4 years ago

10.0.3

4 years ago

10.0.2

4 years ago

10.0.1

4 years ago

9.3.1

4 years ago

9.2.26

5 years ago

9.2.20

5 years ago

9.2.19

5 years ago

9.2.18

5 years ago

9.2.17

5 years ago

9.2.16

5 years ago

9.2.15

5 years ago

9.2.14

5 years ago

9.2.13

5 years ago

9.2.12

5 years ago

9.2.11

5 years ago

9.2.10

5 years ago

9.2.9

5 years ago

9.2.8

5 years ago

9.2.6

5 years ago

9.2.5

5 years ago

9.2.2

5 years ago

9.2.1

5 years ago

9.1.19

5 years ago

9.1.18

5 years ago

9.1.17

5 years ago

9.1.16

5 years ago

9.1.15

5 years ago

9.1.14

5 years ago

9.1.13

6 years ago

9.1.12

6 years ago

9.1.11

6 years ago

9.1.10

6 years ago

9.1.9

6 years ago

9.1.8

6 years ago

9.1.7

6 years ago

9.1.6

6 years ago

9.1.5

6 years ago

9.1.4

6 years ago

9.1.3

6 years ago

9.1.2

6 years ago

9.1.1

6 years ago

9.0.11

6 years ago

9.0.10

6 years ago

9.0.9

6 years ago

9.0.8

6 years ago

9.0.7

6 years ago

9.0.6

6 years ago

9.0.5

6 years ago

9.0.4

6 years ago

9.0.3

6 years ago

9.0.1

6 years ago

8.0.4

6 years ago

8.0.3

6 years ago

8.0.2

6 years ago

8.0.1

6 years ago

7.2.4

7 years ago

7.2.3

7 years ago

7.2.2

7 years ago

7.2.1

7 years ago

7.1.10

7 years ago

7.1.9

7 years ago

7.1.8

7 years ago

7.1.5

7 years ago

7.1.4

7 years ago

7.1.3

7 years ago

7.1.2

7 years ago

7.1.1

7 years ago

7.0.17

7 years ago

7.0.16

7 years ago

7.0.15

7 years ago

7.0.10

7 years ago

7.0.9

7 years ago

7.0.8

7 years ago

7.0.4

7 years ago

7.0.3

7 years ago

7.0.2

7 years ago

6.1.3

7 years ago

6.0.14

7 years ago

6.0.13

7 years ago

6.0.12

7 years ago

6.0.11

7 years ago

6.0.10

7 years ago

6.0.9

7 years ago

6.0.8

7 years ago

6.0.7

7 years ago

6.0.6

7 years ago

6.0.5

7 years ago

6.0.4

7 years ago

6.0.2

7 years ago

6.0.1

7 years ago

5.0.47

7 years ago

5.0.46

7 years ago

5.0.44

7 years ago

5.0.43

7 years ago

5.0.42

7 years ago

5.0.41

7 years ago

5.0.40

7 years ago

5.0.38

7 years ago

5.0.37

7 years ago

5.0.36

7 years ago

5.0.35

7 years ago

5.0.34

7 years ago

5.0.33

7 years ago

5.0.32

7 years ago

5.0.31

7 years ago

5.0.30

7 years ago

5.0.28

7 years ago

5.0.27

7 years ago

5.0.26

7 years ago

5.0.24

7 years ago

5.0.22

7 years ago

5.0.20

7 years ago

5.0.19

7 years ago

5.0.18

7 years ago

5.0.15

7 years ago

5.0.14

7 years ago

5.0.13

7 years ago

5.0.11

7 years ago

5.0.9

7 years ago

5.0.8

7 years ago

5.0.7

7 years ago

5.0.6

7 years ago

5.0.5

7 years ago

5.0.4

7 years ago

5.0.3

7 years ago

5.0.1

7 years ago

4.1.47

7 years ago

4.1.45

7 years ago

4.1.44

7 years ago

4.1.43

7 years ago

4.1.42

7 years ago

4.1.41

7 years ago

4.1.40

7 years ago

4.1.38

7 years ago

4.1.37

7 years ago

4.1.35

8 years ago

4.1.33

8 years ago

4.1.32

8 years ago

4.1.31

8 years ago

4.1.30

8 years ago

4.1.29

8 years ago

4.1.28

8 years ago

4.1.25

8 years ago

4.1.24

8 years ago

4.1.23

8 years ago

4.1.22

8 years ago

4.1.20

8 years ago

4.1.19

8 years ago

4.1.17

8 years ago

4.1.16

8 years ago

4.1.15

8 years ago

4.1.13

8 years ago

4.1.12

8 years ago

4.1.11

8 years ago

4.1.10

8 years ago

4.1.9

8 years ago

4.1.7

8 years ago

4.1.4

8 years ago

4.1.3

8 years ago

4.1.2

8 years ago

4.1.1

8 years ago

3.0.49

8 years ago

3.0.48

8 years ago

3.0.47

8 years ago

3.0.46

8 years ago

3.0.45

8 years ago

3.0.44

8 years ago

3.0.43

8 years ago

3.0.42

8 years ago

3.0.41

8 years ago

3.0.40

8 years ago

3.0.39

8 years ago

3.0.38

8 years ago

3.0.37

8 years ago

3.0.32

8 years ago

3.0.29

8 years ago

3.0.27

8 years ago

3.0.26

8 years ago

3.0.24

8 years ago

3.0.23

8 years ago

3.0.22

8 years ago

3.0.19

8 years ago

3.0.18

8 years ago

3.0.15

8 years ago

3.0.13

8 years ago

3.0.12

8 years ago

3.0.11

8 years ago

3.0.10

8 years ago

3.0.9

8 years ago

3.0.8

8 years ago

3.0.7

8 years ago

3.0.6

8 years ago

3.0.5

8 years ago

3.0.4

8 years ago

3.0.3

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

1.0.33

8 years ago

1.0.32

8 years ago

1.0.31

8 years ago

1.0.30

8 years ago

1.0.29

8 years ago

1.0.27

8 years ago

1.0.26

8 years ago

1.0.25

8 years ago

1.0.23

8 years ago

1.0.22

8 years ago

1.0.21

8 years ago

1.0.20

8 years ago

1.0.19

8 years ago

1.0.18

8 years ago

1.0.17

8 years ago

1.0.16

8 years ago

1.0.15

8 years ago

1.0.14

8 years ago

1.0.13

8 years ago

1.0.12

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago