使用 mock 数据在本地运行 SAP Fiori Elements 应用的工作原理-阿里云开发者社区

开发者社区> -技术小能手-> 正文

使用 mock 数据在本地运行 SAP Fiori Elements 应用的工作原理

简介: 使用 mock 数据在本地运行 SAP Fiori Elements 应用的工作原理
+关注继续查看

本系列的前两篇文章:


在没有任何前端开发经验的基础上, 创建第一个 SAP Fiori Elements 应用

如何使用 mock 数据在本地运行 SAP Fiori Elements

本文研究 Fiori Elements 应用本地运行,而不是连接远程数据库,消费服务器 OData 服务的工作原理。


本地运行 SAP Fiori Elements 应用时,访问的 index.html 为:test 文件夹下的 flpSandboxMockServer.htm

image.png

这个 id 为 sap-ui-bootstrap 的 script 标签里,定义了 SAP UI5 bootstrap 需要加载的 JavaScript Resource 文件:

image.png这个 script data-sap-ui-use-mockserver 标签里,定义了 为 true:

image.png

使用 mock server 的标志位,在 locate-reuse-libs.js 里被访问。在 callback 里执行 mock server 的 init 操作。

image.pngimage.png在 mock 模式下运行,metadata 的 url 也指向本地 xml 文件了:

image.png

mock server url:/sap/opu/odata/sap/SEPMRA_PROD_MAN/ 和正常模式下运行的 OData server url 相比没有变化,

image.png

关键的一个方法:


image.png看 simulate 方法的注释:


Simulates an existing OData service by sepcifying the metadata URL and the base URL for the mockdata

通过指定 Metadata url 和 mockdata base url,来模拟一个 OData 服务。


The mockdata needs to be stored individually for each entity type in a separate JSON file. The name of the JSON file needs to match the name of the entity type.

每个 entity type 的 mockdata 必须单独存放在一个 json 文件里,且 json 文件的名称,必须和 entity type 完全一致。


如果没有提供 mockdata 的 base url,则 mockdata 基于 metadata 被创建。

1981 行的 _refreshData 方法,会加载本地存储的 json 文件包含的 mockdata:

image.pngimage.png接下来,是 mockserver 为不同类型的 HTTP 请求,注册不同的 handler. 这样,当 mock server 收到 SAP Fiori Elements 应用发起的 HTTP 请求时,这些 handler 会被调用,来返回 mock 过的数据。image.png

每个 HTTP 请求 handler 在注册的时候,都会绑定一个 path,如下图 2179 的正则表达式所示,这代表了该 handler 能够处理哪些路径的 HTTP 请求。例如,当 url 包含 metadata 字符串时,触发下图的 metadata handler,将本地 localService 文件夹内的 metadata.xml,返回给请求的发起方。

image.png

mock server 响应其他请求的原理类似,这里就不再赘述了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
本地语音识别IC应用中的主要问题
本地语音识别IC应用中的关于方言及口音的不同、环境中存在噪音问题;如何有效提升对用户指令词的识别;有哪些方式能够有效的降低语音本地识别IC的成本的问题进行分析
910 0
如何使用多数据源,同时使用jpa和jdbctemplate
spring: datasource: first: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://xx.
1117 0
阿里云大数据计算服务MaxCompute命令行工具——odpscmd的操作使用
在MaxCompute生态中,命令行工具究竟处于什么样的位置?它又发挥着什么样的作用?能够帮助开发者如何更好使用MaxCompute?在本文中,阿里巴巴计算平台产品专家曲宁将通过一个完整简单的小例子为大家介绍MaxCompute命令行工具odpscmd的使用以及其所具有的各种能力。
4708 0
找工作有用的博客
http://blog.csdn.net/hackbuteer1/article/details/7581353#comments http://blog.csdn.net/huangxy10/article/details/8041706 微信公众号: 猿人谷 如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】 如果您希望与我交流互动,欢迎关注微信公众号 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
437 0
第一个Polymer应用 - (4)收尾工作
原文链接: Step 4: Finishing touches翻译日期: 2014年7月8日翻译人员: 铁锚在本节中,会在卡片上添加收藏按钮,并可以通过切换选项卡(tabs)连接到不同的  控制器, 整个应用就算完成了.
704 0
使用ElementUi的table组件自定义添加升序、降序按钮和点击事件及排序
使用ElementUi的table组件自定义添加升序、降序按钮和点击事件及排序
7923 0
1727
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载