Angular2 HTTP client to consume RESTful services. Built on angular2/http with TypeScript.
Note: this solutions is not production ready, it's in a very basic alpha state. Any ideas or contributions are very welcomed :)
npm install angular2-restimport {Request, Response} from 'angular2/http'; import {RESTClient, GET, PUT, POST, DELETE, BaseUrl, Headers, DefaultHeaders, Path, Body, Query} from 'angular2-rest'; import {Todo} from './models/Todo'; import {SessionFactory} from './sessionFactory'; @Injectable() @BaseUrl("http://localhost:3000/api/") @DefaultHeaders({ 'Accept': 'application/json', 'Content-Type': 'application/json' }) export class TodoRESTClient extends RESTClient { protected requestInterceptor(req: Request) { if (SessionFactory.getInstance().isAuthenticated) { req.headers.append('jwt', SessionFactory.getInstance().credentials.jwt); } } protected requestInterceptor(req: Response) { // do sg with responses } @GET("todo/") public getTodos( @Query("sort") sort?: string): Observable { return null; }; @GET("todo/{id}") public getTodoById( @Path("id") id: string): Observable { return null; }; @POST("todo") public postTodo( @Body todo: Todo): Observable { return null; }; @PUT("todo/{id}") public putTodoById( @Path("id") id: string, @Body todo: Todo): Observable { return null; }; @DELETE("todo/{id}") public deleteTodoById( @Path("id") id: string): Observable { return null; }; }@Component({ selector: 'to-do', viewProviders: [TodoRESTClient], }) @View({ templateUrl: 'components/to-do-template.html', }) export class ToDoCmp { constructor(todoRESTClient: TodoRESTClient) { } //Use todoRESTClient }getBaseUrl(): string: returns the base url of RESTClientgetDefaultHeaders(): Object: returns the default headers of RESTClient in a key-value pair
@BaseUrl(url: string)@DefaultHeaders(headers: Object)
@GET(url: String)@POST(url: String)@PUT(url: String)@DELETE(url: String)@Headers(headers: Object)
@Path(key: string)@Query(key: string)@Header(key: string)@Body
MIT