http.provider.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from "rxjs/Observable"; @Injectable()
export class HttpProvider { constructor(
private httpClient: HttpClient,
) { } get(url: string): Observable<any> {
return this.httpClient.get(url)
.map(this.extractData)
.catch(this.handleError);
} list(url: string): Observable<any> {
return this.get(url);
} post(url: string, body: any): Observable<any> {
return this.httpClient.post(url, body)
.map(this.extractData)
.catch(this.handleError);
} delete(url: string): Observable<any> {
return this.httpClient.delete(url)
.map(this.extractData)
.catch(this.handleError);
} patch(url: string, body: any): Observable<any> {
return this.httpClient.patch(url, body)
.map(this.extractData)
.catch(this.handleError);
} put(url: string, body: any): Observable<any> {
return this.httpClient.put(url, body)
.map(this.extractData)
.catch(this.handleError);
} head(url: string): Observable<any> {
return this.httpClient.head(url)
.map(this.extractData)
.catch(this.handleError);
} private extractData(res: Response) {
if (res.status < 200 || res.status >= 300) {
throw new Error('Bad response status: ' + res.status);
}
let body = {};
if (res.status !== 204) {
body = res;
}
return body || {};
} private handleError(error: any) {
const errMsg = error.message || 'Server error';
//console.error(JSON.stringify(error));
return Observable.throw(errMsg);
}
}
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Injectable } from '@angular/core'; @Injectable()
export class AppStoreService {
//private baseUrl: string = '';
constructor(
private httpProvider: HttpClient) {
} SaveAppInfo(app: any, callback: any): void {
if (app.Id) {
let editApp = {
DisplayName: app.DisplayName || '',
Name: app.Name || '',
Info: app.Info,
Port: app.Port,
Category: app.Category
}
this.httpProvider
.put("/api/Applications/", editApp, { responseType: "text" })
.subscribe(result => {
callback(result);
}, this.HandleError);
} else {
let appBody: {} = {}; if (app.DisplayName) {
appBody['DisplayName'] = app.DisplayName;
}
if (app.Name) {
appBody['Name'] = app.Name;
}
if (app.Info) {
appBody['Info'] = app.Info;
}
if (app.Port) {
appBody['Port'] = app.Port;
}
if (app.Category) {
appBody['Category'] = app.Category;
} this.httpProvider
.post('/api/Applications', appBody, { responseType: "text" })
.subscribe(result => {
callback(result);
}, this.HandleError);
}
}
DeleteApp(id: string, callback: any): void {
this.httpProvider
.delete('/api/Applications/'+ id, { responseType: "text" })
.subscribe(result => {
callback(result);
}, this.HandleError);
}
GetAppOne(id: string, callback: any = null): any {
this.httpProvider
.get('/api/Applications/' + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
AllApp(displayName: string, category: any, callback: any = null): any {
this.httpProvider
.get("/api/Applications?category=" + category + (displayName ? '&displayName=' + displayName:''))
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
GetCategoryList(callback: any = null): void {
this.httpProvider
.get('/api/Applications/Categorys')
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
GetAppSatus(callback: any = null): void {
this.httpProvider
.get('/api/Applications/Status')
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} HandleError(err: HttpErrorResponse): void {
console.log(err)
//let errInfo = JSON.parse(err.error);
//alert(errInfo["odata.error"].message.value);
} AllPkg(id: string, callback: any = null): any {
this.httpProvider
.get("/api/DockerPackages?id=" + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} SaveAppPkgInfo(pkg: any, callback: any): void {
let pkgBody: {} = {}; if (pkg.AppId) {
pkgBody['AppId'] = pkg.AppId;
}
if (pkg.Description) {
pkgBody['Description'] = pkg.Description;
}
if (pkg.Ports) {
pkgBody['Ports'] = pkg.Ports;
}
pkgBody['Version'] = 0;
pkgBody['Status'] = 0; this.httpProvider
.post('/api/DockerPackages', pkgBody)
.subscribe(result => {
callback(result);
}, this.HandleError);
} GetPkgOne(id: string, callback: any = null): any {
this.httpProvider
.get('/api/DockerPackages/' + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} GetAppDpyList(id: string, callback: any = null) {
this.httpProvider
.get("/api/Deploys?id=" + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
} DeleteDpy(id: string, callback: any): void {
this.httpProvider
.delete('/api/Deploys/' + id)
.subscribe(result => {
callback(result);
}, this.HandleError);
} ValidatePackage(id: string, callback: any = null): any {
this.httpProvider
.get('/api/DockerPackages/ValidatePackage/' + id)
.subscribe((result: any) => {
callback(result);
}, this.HandleError);
}
SaveAppDpyInfo(dpy: any, callback: any): void {
let dpyBody: {} = {}; if (dpy.AppId) {
dpyBody['AppId'] = dpy.AppId;
}
if (dpy.PackageId) {
dpyBody['PackageId'] = dpy.PackageId;
}
if (dpy.Level) {
dpyBody['Level'] = dpy.Level;
}
if (dpy.InstanceCount) {
dpyBody['InstanceCount'] = dpy.InstanceCount;
}
if (dpy.Description) {
dpyBody['Description'] = dpy.Description;
}
if (dpy.Ports) {
dpyBody['Ports'] = dpy.Ports;
}
dpyBody['Status'] = 0; this.httpProvider
.post('/api/Deploys', dpyBody)
.subscribe(result => {
callback(result);
}, this.HandleError);
}
}

【angular5项目积累总结】http请求服务封装的更多相关文章

  1. 【angular5项目积累总结】消息订阅服务

    code import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; @Injectable ...

  2. 【angular5项目积累总结】遇到的一些问题以及解决办法

    1.项目中字符串特别是\r\n,替换成br之后,在页面换行无法生效? 答:绑定元素 innerHTML. <div class="panel-body" [innerHTML ...

  3. 【angular5项目积累总结】侧栏菜单 navmenu

    View Code import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/co ...

  4. 【angular5项目积累总结】avatar组件

    View Code import { Component, HostListener, ElementRef } from '@angular/core'; import { Adal4Service ...

  5. 【angular5项目积累总结】breadcrumb面包屑组件

    view code <div class="fxs-breadcrumb-wrapper" aria-label="Navigation history" ...

  6. 【angular5项目积累总结】结合adal4实现http拦截器(token)

    import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHandler, HttpRe ...

  7. 【angular5项目积累总结】文件上传

    <div class="form-group row"> <label class="col-sm-2 col-form-label"> ...

  8. 【angular5项目积累总结】文件下载

    download() { const token = localStorage.getItem('token'); let headers: HttpHeaders = new HttpHeaders ...

  9. 【angular5项目积累总结】自定义管道 OrderBy

    import { Injectable, Pipe } from '@angular/core'; @Pipe({ name: 'orderBy' }) @Injectable() export cl ...

随机推荐

  1. h5页面宽度设置7.5rem

    function ready() { var u = navigator.userAgent; var winW = document.documentElement.clientWidth; if ...

  2. OpenStack虚机网卡的创建过程

    OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机.虚机启动的过程中涉及很多内容,其中非常重要的一个环节就是创建并绑定虚机的虚拟网卡.虚机的创建和管理是Nova的任 ...

  3. mysql--对行(表中数据)的增删改查

    一.插入数据(增加)insert 1.插入数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); #指定字段来插入数据,插 ...

  4. Gogland使用 - 非常简单查看Go语言源代码全貌!

    Go语言也支持面向对象开发,不过和以往我们所使用的面向对象开发还是有不同,Go语言主张组合方式形成类的概念,在Go语言中,结构起到很大作用,如果用结构组合字段和方法,那么单纯在源代码中看,真的是费时费 ...

  5. CentOS7.x下安装VNC

    1.检查是否安装VNC rpm -q tigervnc tigervnc-server 2.安装X-Window yum check-update yum groupinstall "X W ...

  6. 【ocp-12c】最新Oracle OCP-071考试题库(44题)

    44.(9-12)choose all that apply View the Exhibit and examine the details of the ORDER_ITEMS table. Ev ...

  7. css如何去掉select原始样式

    css代码: select { /*将默认的select选择框样式清除*/ appearance: none; -moz-appearance: none; -webkit-appearance: n ...

  8. centos和ubuntu配置路由的三种方式

    本篇总结三种修改路由的方式:route, ip route, 以及通过修改文件来配置路由,前2种命令行形式适用于ubuntu和centos,重启失效,最后一种永久有效.     一. route命令 ...

  9. Security-OAuth2.0 密码模式之客户端实现

    我的OAuth2.0 客户端项目目录 pom 的配置 <?xml version="1.0" encoding="UTF-8"?> <proj ...

  10. Oracle递归查询(start with)

    写代码时碰到要弄清楚Oracle的role之间的传递关系,就是有role A的话,可以通过grant A to B,把A赋予给B,又通过grant B to C .那我想知道所有role中,有哪些ro ...