@Wahson
2017-12-05T08:43:26.000000Z
字数 1500
阅读 888
未分类
- 元数据文档优化,工具使用部分补充完成
- 元数据crud工具开发完成
- dapeng-metaui-servlet-debug 设计方案
- controller 消除 思考,设计方案
- FieldMeta 字段扩展点补充
- metaui组件层次优化,思考(dom-if、dom-repeat 去除, 倾向原生webcomponent实现)
- ...
背景: 大部分情况下,前端controller仅仅是一个请求中转,在接收到前端请求后原封不动调用XXXServiceClient()#xxMethod()
方案1: 通过isuwang-open-api, 提供一个统一的接口,前端所有请求请求该接口,提供serviceName,version, method, parameters
如:
fetch("/openapi/com.isuwang.soa.task.TaskAdminService/1.0.0/findTasks", {
method: "POST",
body: JSON.stringify({taskId: 1, items:[1,2,3]})
})
// 或
fetch("/openapi/", {
method: "POST",
body: JSON.stringify({
serviceMeta: {serviceName: "com.isuwang.soa.task.TaskAdminService", version: "1.0.0", method: "findTasks"},
parameter: {
taskId: 1,
items:[1,2,3]
}
})
})
前端:所有表单数据都已json格式提交,meta-constructor组件需要更改m.form.url获取规则
服务:isuwang-open-api提供统一请求入口,同时需要考虑:
1. 访问控制(未登录,无权限等)
2. ...
dapeng-code-generator提供一个工具,输入thrift目录路径,以及服务名, 输出里面服务的xml元数据
dapeng-metaui-servlet-debug配置:(增加一个thriftIn的初始参数,用来指定thrift目录路径)
<servlet>
<servlet-name>metadataServlet</servlet-name>
<servlet-class>com.isuwang.dapeng.metadata.servlet.MetadataServlet4Debug</servlet-class>
<init-param>
<param-name>driverClassName</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>thriftIn</param-name>
<param-value>/Users/wahsonleung/IdeaProjects/isuwang/task-admin/task-admin-api/src/main/resources/thrifts</param-value>
</init-param>
</servlet>
该配置仅本地开发时使用,测试或者生产环境时需要替换回com.isuwang.dapeng.metadata.servlet.MetadataServlet
的配置