泛微E9后端学习笔记 - API接口调用过程

参考:E9BackendDdevelopmentGuide.pdf (e-cloudstore.com)

根据文档指引在E9安装目录下可找到如下两个文件夹

com.engine目录是核心业务逻辑类所在目录,不允许直接暴露对外服务接口,对外服务接口请暴露在com.api下(专门提供API服务的目录)。  
在com.api.模块.web目录下建立对外接口类,然后通过extends(继承)的方式暴露RESTful服务接口。

秉着学习研究的态度,我想知道接口在调用时,engine到底是如何起作用的。

场景:后端流程引擎/路径管理/路径设置中,点击操作菜单

 通过前端调试可以发现,点击操作菜单弹出的界面是由API返回的JSON构成的。

API的地址:http://xxxxxx/api/workflow/OperationMenuSet/getCurrentNodeMenuSetData

后台执行过程记录如下:

1、定位api具体资源路径,即/api/workflow/web目录中的文件WorkflowOperationMenuAction

发现了javax.ws.rs.Path以及@Path注解。

package com.api.workflow.web;

import com.engine.workflow.web.workflowPath.OperationMenuAction;
import javax.ws.rs.Path;

@Path("/workflow/OperationMenuSet")
public class WorkflowOperationMenuAction extends OperationMenuAction {
    public WorkflowOperationMenuAction() {
    }
}

2、定位到继承类,/engine/workflow/web/workflowPath目录中的OperationMenuAction

在这里发现了getCurrentNodeMenuSetData方法,依旧使用了@Path

在此方法中可以看到使用了operationMenuService

    private void setService(User var1) {
        this.operationMenuService = (OperationMenuServiceImpl)ServiceUtil.getService(OperationMenuServiceImpl.class, var1);
    }

    @GET
    @Path("/getCurrentNodeMenuSetData")
    @Produces({"text/plain;charset=utf-8"})
    public String getCurrentNodeMenuSetData(@Context HttpServletRequest var1, @Context HttpServletResponse var2) {
        Object var3 = new HashMap();

        try {
            User var4 = CommonUtil.getUserByRequest(var1, var2);
            this.setService(var4);
            var3 = this.operationMenuService.getCurrentNodeMenuSetData(ParamUtil.request2Map(var1));
        } catch (Exception var5) {
            var5.printStackTrace();
            ((Map)var3).put("api_status", false);
            ((Map)var3).put("api_errormsg", "catch exception : " + var5.getMessage());
        }

        return JSONObject.toJSONString(var3);
    }

3、继续定位到service的实现类,/engine/workflow/service/impl/workflowPath/operationMenuServiceImpl

此处通过调用 GetOperationMenuInfoCmd实现

public class OperationMenuServiceImpl extends Service implements OperationMenuService {
    public OperationMenuServiceImpl() {
    }

    public Map<String, Object> getCurrentNodeMenuSetData(Map<String, Object> var1) {
        return (Map)this.commandExecutor.execute(new GetOperationMenuInfoCmd(var1, this.user));
    }
    //......
}

4、最终定位到cmd找到具体的业务逻辑,/engine/workflow/cmd/workflowPath/node/operationMenu/GetOperationMenuInfoCmd

总结,API路径是假,通过service找cmd才是真。

  • 1
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
泛微e9后端接口的创建流程主要包括以下几个步骤。 1.需求分析:根据实际业务需求,确定需要创建的后端接口的功能和目标,明确接口的输入参数、输出结果以及具体的业务逻辑。 2.接口设计:根据需求分析的结果,设计接口的名称、URL、请求方法(如GET、POST)、参数列表和返回结果的数据格式等。需要注意的是,接口的设计应该符合RESTful风格,并尽量遵循统一的命名规范。 3.编码实现:根据接口设计的结果,使用泛微e9的开发工具,如Flowline或者编写自定义Java代码,实现接口的具体功能。在编码过程中,需要考虑接口的安全性、性能优化以及异常处理等问题。 4.接口测试:编码完成后,进行接口的单元测试和集成测试,保证接口的功能正确性和稳定性。可以使用Postman等工具,发送不同类型的请求,验证接口的输入输出与预期是否一致。 5.文档编写:编写接口的详细文档,包括接口的说明、参数列表、返回结果的结构和格式、示例请求和响应等内容。这些文档将被用于后续接口使用和维护的参考。 6.部署发布:将编码完成的接口部署到泛微e9的服务器或云平台上,并进行发布。确保接口可以在生产环境中正常访问和使用。 7.监控与维护:上线后,对接口进行监控和维护,定期检查接口的性能和稳定性,并及时修复接口中的bug和问题,保证接口的正常运行。 通过以上步骤的执行,可以成功创建一个泛微e9后端接口,实现业务需求并提供高质量的服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值