angular - 即使服务器无法访问,也可以模拟服务器响应
问题描述
我知道的事情(如果我错了,请纠正我,谢谢:)):
HttpInterceptor
工作方式类似于面向方面的编程;httpOptions
可以对请求进行添加/修改;- 修改response with
clone()
也可以实现response;
我的问题
我想测试一些库,而它们的相关服务器有时在开发时可能会关闭我只关心数据与服务器没有交互是可以的
当请求满足某些模式时,即使服务位于其他库中,我是否可以只返回已经准备好的模拟数据而不请求服务器?
我的要求
- 库中的所有逻辑保持不变;
- 使用模拟数据响应来自库的 http 请求;
更新于 2019-01-15
感谢@Sachin Gupta的帮助,我interceptor
用这个演示进一步测试了。
做了什么:
auth-interceptor.ts
为请求添加标头;logging-interceptor.ts
添加以跟踪请求详细信息和时间成本;data-mocking-interceptor.ts
停止对服务器的请求并直接返回模拟数据。
解决方案
看看这个。
https://stackblitz.com/edit/angular-json-http-response-catch
如果服务器可访问,则填充数据,否则将模拟作为响应发送
拦截器
export class NoopInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler):
Observable<HttpEvent<any>> {
let response = new HttpResponse();
response = response.clone({body: [{"sads":"ewre"}]});
return next.handle(req).pipe(catchError((err) => {return of(response).pipe(delay(10))}) );
}
}
推荐阅读
- java - 针对不同类型实体的微服务设计
- joomla - 试图输出变量(可能是对象)的键和值,但它什么也不输出
- python - 如何在按钮单击 PySimpleGui 时打开文件
- python - 我怎样才能将汽车的价格加在一起并将总写入文本文件?
- r - R Shiny:从 iframe 中抓取数据
- java - 在 java 中使用 instanceof 时出现“无法转换”错误
- wordpress - 如何显示四舍五入的价格,包括。从他们的 WooCommerce 产品 ID/变体 ID 中用逗号征税?
- firebase - 从 GAS Google 表中提取到 Firebase 的对象结构
- image - 图片未加载 net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
- php - PHP/HTML:如何根据数据库中的值更改图像源