npm install ngx-rest-service
or
yarn add ngx-rest-service
Add to imports:
@NgModule({
imports: [
NgxRestModule.forRoot({
apiBaseUrl: 'http://localhost:3001', // <---- base url, you can get from environment.
}),
],
})
Extend RestService in your service:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Auth, User } from '../../models';
import { Body, Get, Post, RestService } from 'ngx-rest-service';
@Injectable({
providedIn: 'root',
})
export class AuthService extends RestService {
@Post('/auth/login')
login(@Body userLoginRequest: Auth.UserLoginRequest): Observable<Auth.LoginResponse> {
return null;
}
@Post('/auth/register')
register(@Body userRegisterRequest: Auth.UserRegisterRequest): Observable<User> {
return null;
}
@Get('/auth/me')
inquireMe(): Observable<User> {
return null;
}
}
You can use @Get() decorator to make GET request:
@Get('/projects')
getProjects(): Observable<Project> {
return null;
}
Equals:
<apiBaseUrl>/projects
@Get('/projects/{code}')
getProjectByCode(@Path('code') code: string): Observable<Project> {
return null;
}
Equals:
<apiBaseUrl>/projects/{code}
@Get('/projects')
getProjects(@Query('page') page?: number, @Query('limit') limit?: number): Observable<Pagination<Project>> {
return null;
}
Equals:
<apiBaseUrl>/projects?page={page}&limit={limit}
@Get('/projects/{id}')
getProjectsById(
@Path('id') id: number,
@Params('personCount') personCount: number,
): Observable<Project[]> {
return null;
}
Equals:
<apiBaseUrl>//projects/{id}
Query String Parameters
personCount: ${personCount}
@Post('/projects/create')
createProject(@Body project: Project): Observable<Project> {
return null;
}
@Put('/projects/update')
updateProject(@Body project: Project): Observable<Project> {
return null;
}
@Delete('/projects/{id}')
deleteProject(@Path('id') id: number): Observable<DeleteResult> {
return null;
}
@Get('/downloadExcel')
@Headers({
Accept: 'application/octet-stream,application/json',
})
@ResponseType(eHTTP.ResponseType.Blob)
inquireExcel(
@Body body: DownloadProjectsExcelRequest,
): Observable<Blob> {
return null;
}