[关闭]
@Wahson 2017-12-05T16:43:26.000000Z 字数 1500 阅读 860

在此处输入标题

未分类


  • 元数据文档优化,工具使用部分补充完成
  • 元数据crud工具开发完成
  • dapeng-metaui-servlet-debug 设计方案
  • controller 消除 思考,设计方案
  • FieldMeta 字段扩展点补充
  • metaui组件层次优化,思考(dom-if、dom-repeat 去除, 倾向原生webcomponent实现)
  • ...

controller消除方案

背景: 大部分情况下,前端controller仅仅是一个请求中转,在接收到前端请求后原封不动调用XXXServiceClient()#xxMethod()

方案1: 通过isuwang-open-api, 提供一个统一的接口,前端所有请求请求该接口,提供serviceName,version, method, parameters
如:

  1. fetch("/openapi/com.isuwang.soa.task.TaskAdminService/1.0.0/findTasks", {
  2. method: "POST",
  3. body: JSON.stringify({taskId: 1, items:[1,2,3]})
  4. })
  5. // 或
  6. fetch("/openapi/", {
  7. method: "POST",
  8. body: JSON.stringify({
  9. serviceMeta: {serviceName: "com.isuwang.soa.task.TaskAdminService", version: "1.0.0", method: "findTasks"},
  10. parameter: {
  11. taskId: 1,
  12. items:[1,2,3]
  13. }
  14. })
  15. })

前端:所有表单数据都已json格式提交,meta-constructor组件需要更改m.form.url获取规则
服务:isuwang-open-api提供统一请求入口,同时需要考虑:
1. 访问控制(未登录,无权限等)
2. ...

dapeng-metaui-servlet-debug 设计方案

dapeng-code-generator提供一个工具,输入thrift目录路径,以及服务名, 输出里面服务的xml元数据

dapeng-metaui-servlet-debug配置:(增加一个thriftIn的初始参数,用来指定thrift目录路径)

  1. <servlet>
  2. <servlet-name>metadataServlet</servlet-name>
  3. <servlet-class>com.isuwang.dapeng.metadata.servlet.MetadataServlet4Debug</servlet-class>
  4. <init-param>
  5. <param-name>driverClassName</param-name>
  6. <param-value>com.mysql.jdbc.Driver</param-value>
  7. </init-param>
  8. <init-param>
  9. <param-name>thriftIn</param-name>
  10. <param-value>/Users/wahsonleung/IdeaProjects/isuwang/task-admin/task-admin-api/src/main/resources/thrifts</param-value>
  11. </init-param>
  12. </servlet>

该配置仅本地开发时使用,测试或者生产环境时需要替换回com.isuwang.dapeng.metadata.servlet.MetadataServlet的配置

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注