18.0.20 • Published 5 months ago

ng2-rest v18.0.20

Weekly downloads
465
License
MIT
Repository
github
Last release
5 months 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)
}
18.0.13

8 months ago

18.0.14

8 months ago

18.0.15

8 months ago

18.0.16

7 months ago

18.0.17

7 months ago

18.0.18

6 months ago

18.0.19

6 months ago

18.0.20

5 months ago

18.0.9

11 months ago

18.0.10

11 months ago

18.0.12

10 months ago

16.100.5

1 year ago

16.100.4

1 year ago

16.100.7

1 year ago

16.100.6

1 year ago

18.0.6

11 months ago

16.444.1

1 year ago

16.444.4

1 year ago

16.444.3

1 year ago

16.444.6

1 year ago

16.444.5

1 year ago

16.444.7

1 year ago

18.0.4

11 months ago

18.0.3

11 months ago

18.0.2

11 months ago

18.0.1

12 months ago

16.444.14

12 months ago

16.444.13

12 months ago

16.444.12

1 year ago

16.444.11

1 year ago

16.444.10

1 year ago

16.100.3

1 year ago

16.100.2

1 year ago

16.100.1

1 year ago

16.5.19

1 year ago

16.5.18

1 year ago

16.5.16

1 year ago

16.5.17

1 year ago

16.5.15

1 year ago

16.5.14

1 year ago

16.5.13

1 year ago

16.5.12

1 year ago

16.5.11

1 year ago

16.5.10

1 year ago

16.5.9

1 year ago

16.5.8

2 years ago

16.5.7

2 years ago

16.5.6

2 years ago

16.5.5

2 years ago

16.5.4

2 years ago

16.5.3

2 years ago

16.5.2

2 years ago

16.5.1

2 years ago

16.0.15

2 years ago

13.2.8

2 years ago

13.2.9

2 years ago

13.2.6

2 years ago

13.2.7

2 years ago

16.0.14

2 years ago

16.0.12

2 years ago

16.0.10

2 years ago

16.0.11

2 years ago

13.2.4

2 years ago

13.2.5

2 years ago

13.2.2

2 years ago

13.2.3

2 years ago

13.2.1

2 years ago

13.1.11

2 years ago

13.1.12

2 years ago

13.1.13

2 years ago

13.1.9

2 years ago

13.1.10

2 years ago

13.1.7

3 years ago

13.1.8

3 years ago

13.1.5

3 years ago

13.1.6

3 years ago

13.1.3

3 years ago

13.1.4

3 years ago

13.1.1

3 years ago

13.1.2

3 years ago

13.0.33

3 years ago

13.0.34

3 years ago

13.0.21

3 years ago

13.0.22

3 years ago

13.0.23

3 years ago

13.0.24

3 years ago

13.0.29

3 years ago

13.0.30

3 years ago

13.0.16

3 years ago

13.0.17

3 years ago

13.0.18

3 years ago

13.0.19

3 years ago

13.0.20

3 years ago

13.0.10

3 years ago

13.0.11

3 years ago

13.0.12

3 years ago

13.0.13

3 years ago

13.0.14

3 years ago

12.0.3

3 years ago

13.0.8

3 years ago

13.0.9

3 years ago

13.0.6

3 years ago

13.0.7

3 years ago

13.0.4

3 years ago

13.0.5

3 years ago

13.0.3

3 years ago

11.0.39

4 years ago

11.0.37

4 years ago

11.0.38

4 years ago

11.0.35

4 years ago

11.0.36

4 years ago

11.0.42

4 years ago

11.0.40

4 years ago

11.0.41

4 years ago

11.0.34

4 years ago

11.0.28

4 years ago

11.0.29

4 years ago

11.0.26

4 years ago

11.0.25

4 years ago

11.0.24

4 years ago

11.0.22

4 years ago

11.0.23

4 years ago

11.0.20

4 years ago

11.0.21

4 years ago

11.0.18

4 years ago

11.0.19

4 years ago

11.0.14

4 years ago

11.0.13

4 years ago

11.0.12

4 years ago

11.0.10

4 years ago

11.0.11

4 years ago

11.0.8

5 years ago

11.0.9

5 years ago

11.0.7

5 years ago

11.0.6

5 years ago

11.0.5

5 years ago

11.0.4

5 years ago

11.0.3

5 years ago

11.0.2

5 years ago

11.0.1

5 years ago

10.0.4

5 years ago

10.0.3

6 years ago

10.0.2

6 years ago

10.0.1

6 years ago

9.3.1

6 years ago

9.2.26

6 years ago

9.2.20

6 years ago

9.2.19

6 years ago

9.2.18

6 years ago

9.2.17

6 years ago

9.2.16

6 years ago

9.2.15

6 years ago

9.2.14

6 years ago

9.2.13

6 years ago

9.2.12

6 years ago

9.2.11

6 years ago

9.2.10

7 years ago

9.2.9

7 years ago

9.2.8

7 years ago

9.2.6

7 years ago

9.2.5

7 years ago

9.2.2

7 years ago

9.2.1

7 years ago

9.1.19

7 years ago

9.1.18

7 years ago

9.1.17

7 years ago

9.1.16

7 years ago

9.1.15

7 years ago

9.1.14

7 years ago

9.1.13

7 years ago

9.1.12

7 years ago

9.1.11

7 years ago

9.1.10

7 years ago

9.1.9

7 years ago

9.1.8

7 years ago

9.1.7

7 years ago

9.1.6

7 years ago

9.1.5

7 years ago

9.1.4

7 years ago

9.1.3

7 years ago

9.1.2

7 years ago

9.1.1

7 years ago

9.0.11

7 years ago

9.0.10

7 years ago

9.0.9

7 years ago

9.0.8

7 years ago

9.0.7

7 years ago

9.0.6

7 years ago

9.0.5

8 years ago

9.0.4

8 years ago

9.0.3

8 years ago

9.0.1

8 years ago

8.0.4

8 years ago

8.0.3

8 years ago

8.0.2

8 years ago

8.0.1

8 years ago

7.2.4

8 years ago

7.2.3

8 years ago

7.2.2

8 years ago

7.2.1

8 years ago

7.1.10

8 years ago

7.1.9

8 years ago

7.1.8

8 years ago

7.1.5

8 years ago

7.1.4

8 years ago

7.1.3

8 years ago

7.1.2

8 years ago

7.1.1

8 years ago

7.0.17

8 years ago

7.0.16

8 years ago

7.0.15

8 years ago

7.0.10

8 years ago

7.0.9

8 years ago

7.0.8

8 years ago

7.0.4

8 years ago

7.0.3

8 years ago

7.0.2

8 years ago

6.1.3

8 years ago

6.0.14

8 years ago

6.0.13

8 years ago

6.0.12

8 years ago

6.0.11

8 years ago

6.0.10

8 years ago

6.0.9

8 years ago

6.0.8

8 years ago

6.0.7

8 years ago

6.0.6

8 years ago

6.0.5

8 years ago

6.0.4

8 years ago

6.0.2

8 years ago

6.0.1

8 years ago

5.0.47

8 years ago

5.0.46

8 years ago

5.0.44

8 years ago

5.0.43

8 years ago

5.0.42

8 years ago

5.0.41

9 years ago

5.0.40

9 years ago

5.0.38

9 years ago

5.0.37

9 years ago

5.0.36

9 years ago

5.0.35

9 years ago

5.0.34

9 years ago

5.0.33

9 years ago

5.0.32

9 years ago

5.0.31

9 years ago

5.0.30

9 years ago

5.0.28

9 years ago

5.0.27

9 years ago

5.0.26

9 years ago

5.0.24

9 years ago

5.0.22

9 years ago

5.0.20

9 years ago

5.0.19

9 years ago

5.0.18

9 years ago

5.0.15

9 years ago

5.0.14

9 years ago

5.0.13

9 years ago

5.0.11

9 years ago

5.0.9

9 years ago

5.0.8

9 years ago

5.0.7

9 years ago

5.0.6

9 years ago

5.0.5

9 years ago

5.0.4

9 years ago

5.0.3

9 years ago

5.0.1

9 years ago

4.1.47

9 years ago

4.1.45

9 years ago

4.1.44

9 years ago

4.1.43

9 years ago

4.1.42

9 years ago

4.1.41

9 years ago

4.1.40

9 years ago

4.1.38

9 years ago

4.1.37

9 years ago

4.1.35

9 years ago

4.1.33

9 years ago

4.1.32

9 years ago

4.1.31

9 years ago

4.1.30

9 years ago

4.1.29

9 years ago

4.1.28

9 years ago

4.1.25

9 years ago

4.1.24

9 years ago

4.1.23

9 years ago

4.1.22

9 years ago

4.1.20

9 years ago

4.1.19

9 years ago

4.1.17

9 years ago

4.1.16

9 years ago

4.1.15

9 years ago

4.1.13

9 years ago

4.1.12

9 years ago

4.1.11

9 years ago

4.1.10

9 years ago

4.1.9

9 years ago

4.1.7

9 years ago

4.1.4

9 years ago

4.1.3

9 years ago

4.1.2

9 years ago

4.1.1

9 years ago

3.0.49

9 years ago

3.0.48

9 years ago

3.0.47

9 years ago

3.0.46

9 years ago

3.0.45

9 years ago

3.0.44

9 years ago

3.0.43

9 years ago

3.0.42

9 years ago

3.0.41

9 years ago

3.0.40

9 years ago

3.0.39

9 years ago

3.0.38

9 years ago

3.0.37

9 years ago

3.0.32

9 years ago

3.0.29

9 years ago

3.0.27

9 years ago

3.0.26

9 years ago

3.0.24

9 years ago

3.0.23

9 years ago

3.0.22

9 years ago

3.0.19

9 years ago

3.0.18

9 years ago

3.0.15

9 years ago

3.0.13

9 years ago

3.0.12

9 years ago

3.0.11

9 years ago

3.0.10

9 years ago

3.0.9

9 years ago

3.0.8

9 years ago

3.0.7

9 years ago

3.0.6

9 years ago

3.0.5

9 years ago

3.0.4

9 years ago

3.0.3

9 years ago

3.0.2

9 years ago

3.0.1

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

1.0.33

9 years ago

1.0.32

9 years ago

1.0.31

9 years ago

1.0.30

9 years ago

1.0.29

9 years ago

1.0.27

9 years ago

1.0.26

9 years ago

1.0.25

9 years ago

1.0.23

9 years ago

1.0.22

9 years ago

1.0.21

9 years ago

1.0.20

9 years ago

1.0.19

9 years ago

1.0.18

9 years ago

1.0.17

9 years ago

1.0.16

9 years ago

1.0.15

9 years ago

1.0.14

9 years ago

1.0.13

9 years ago

1.0.12

9 years ago

1.0.11

9 years ago

1.0.10

9 years ago

1.0.9

9 years ago

1.0.8

9 years ago

1.0.7

9 years ago

1.0.6

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago