能否对angular6中的服务执行以下操作? 如何满足以下要求调用api? 1.强制性检查 2.如果存在任何强制性检查失败,则返回带有正确消息的响应代码400 3.数据类型验证 4.返回带有正确消息的响应代码400 5.初始化数据库调用 6.运行数据库查询并返回响应 7.如果在数据库调用期间发生任何错误,请返回响应代码500和正确的消息 8.如果成功,则返回响应对象。
这对我来说是新事物,因此不知道如何实现。所以什么也不能尝试。
// blog.service.ts
import { Injectable, Inject, Output, EventEmitter } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { APP_CONFIG, AppConfig } from '../app.config';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class BlogService {
@Output() userLoggedIn: EventEmitter<any> = new EventEmitter();
constructor(private http: HttpClient, @Inject(APP_CONFIG) private _config: AppConfig) { }
////////////////////////////////////////////////////
Save(blogForm: any): Observable<any> {
return Observable.create(observer => {
this.http.post(this._config.apiEndpoint + '/newblog',
JSON.stringify(blogForm), { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }
)
.subscribe((response: Response) => {
observer.next(response);
observer.complete();
});
});
}
////////////////////////////////////////////////////
allBlogs(): any{
return this.http.get(this._config.apiEndpoint + '/getblogs').pipe(map(response=>response));
}
////////////////////////////////////////////////////
recentBlogs(): any{
return this.http.get(this._config.apiEndpoint + '/get-recent-blogs').pipe(map(response=>response));
}
////////////////////////////////////////////////////
viewBlog(blog_id:number): any{
return this.http.get(this._config.apiEndpoint+'/viewblog/'+blog_id).pipe(map(response=>response));
}
////////////////////////////////////////////////////
datewiseBlogs(year:any,month:any): any{
return this.http.get(this._config.apiEndpoint+'/year-blogs/'+year+'/month/'+month).pipe(map(response=>response));
}
////////////////////////////////////////////////////
deleteblog(blogid): Observable<any> {
return Observable.create(observer => {
this.http.post(this._config.apiEndpoint+'/deleteblog', { _id: blogid }, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }
).subscribe((response: Response) => {
observer.next(response);
observer.complete();
});
});
}
////////////////////////////////////////////////////
editblog(blogForm: any): Observable<any> {
return Observable.create(observer => {
this.http.post(this._config.apiEndpoint + '/updateblog',
JSON.stringify(blogForm), { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }
).subscribe((response: Response) => {
observer.next(response);
observer.complete();
});
});
}
////////////////////////////////////////////////////
}
预期结果是调用上面服务中的api并执行上面列出的其他操作。