API Manager源码编译及REST 接口改造心得

一、涉及相关代码及相应版本

1、product-apim-2.6.0(apim的主项目,编译后为可执行的项目)

2、analytics-apim-2.6.0(apim 中的统计相关模块,包含了publisher 和 store的统计展示页面,需要在api-manager.xml文件中启用统计, true)

3、carbon-apimgt-6.4.50(apim 的主要功能项目, 所有的功能实现都在该项目中做修改,包含了components features和service-stubs三个模块,我主要做的是将analytics的接口抽取出Rest 接口,因此主要在components中做修改)

4、carbon-kernel-4.4.35(这个项目为kernel级别的,主要支持carbon相关的用户 角色 及权限管理控制,还有其他基础功能,即/carbon下的目录,若修改了项目 应该最先编译该项目)

 

二、项目编译

一般网路状况良好的话基本都能编译通过,需要注意的是,在编译过程中会有个checkstyle的错误,一直没解决 我是直接在编译指令下添加的 -Dcheckstyle.skip=true 来跳过检测style这个步骤,如果有更好的解决方案 欢迎留言讨论!

 

三、主要修改内容

我主要是模仿官方提供的Rest 接口,自定义了/analytics 即所有统计相关的页面接口,需要新开发Rest接口或修改相关接口的可以互相讨论,相关操作如下:

1、找到components中的org.wso2.carbon.apimgt.rest.api.publisher模块,在gen下新建了AnalyticsApi的类

API Manager源码编译及REST 接口改造心得_第1张图片

相关代码的配置 可以参考ApisApi类,这个类是用来管理api的所有操作的。创建AnalyticsApi后需要在webapp/WEB-INF/beans.xml中添加相关配置信息,如图:

API Manager源码编译及REST 接口改造心得_第2张图片

否则 在项目初始化的时候会提示找不到类。

2、创建好AnalyticsApi类后,可以写相应的接口了,需要注意的是:每个接口需要在/resources/publisher-api.yaml中配置相关的访问权限,然后还需要在org.wso2.carbon.apimgt.rest.api.util/resources/publisher-api.json中配置对应的接口权限信息,否则在访问时会提示没有访问权限。位置信息如下图:

API Manager源码编译及REST 接口改造心得_第3张图片

API Manager源码编译及REST 接口改造心得_第4张图片

3、store中对应的统计模块类似于publisher中的开发模式,配置好相应的配置文件即可。

 

四、关于jag文件说明

apim页面大部分使用了.jag文件,使用了jagger.js,加载时jagg.module("xxx)这个方法的查找顺序是:

先查找当前目录的xxx中的module.jag文件,然后查找对应的方法名。

 

五、product相关结构说明

由于新添加的只是一部分web端的功能,因此 在开发完成相应的接口后 只需要更新wso2am-2.6.0\repository\deployment\server\webapps 文件夹下相应的war即可。

 

你可能感兴趣的:(API Manager源码编译及REST 接口改造心得)