# cpas-api **Repository Path**: youdatasum/cpas-api ## Basic Information - **Project Name**: cpas-api - **Description**: 为前端提供统一API调用方法。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-11 - **Last Updated**: 2022-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: 插件, 动态插件 ## README # method-api #### 介绍 基于SpringBoot 通过增加简单的注解,一秒将普通类方法生成通用 API 。 插件化开发,微服务与单体应用随意切换。部署我简单 目前基本思路已实现,代码还未经过处理。logger加不上,不知道为啥。 #### 开发目录结构 ``` ├── apis(基础包,最后会发布到Maven仓库) │ ├── method-api(基础包,实现了MethodApi,插件管理等) │ └── sql-api(数据操作API,后期可能会以插件形式发布) ├── plugin-demo(示例插件包) │ ├── demo1 │ ├── demo2 │ └── ... ├── cpas-api-service(示例SpringBoot单体应用的使用) └── plugins(示例插件目录) └── plugins.json(插件管理,页面主要维护这个文件) ``` #### 快速开始 1. 克隆项目 ```shell $ git clone -b develop https://gitee.com/youdatasum/cpas-api.git ``` 2. 使用IDEA打开项目 3. 修改cpas-api-service\src\main\resources\application.yml 文件 4. 修改 cpas-api.pluginPath 路径指向插件根目录。 5. 运行 6. 使用postman或其它工具,本人使用Apifox(推荐使用可共享接口方法) ``` post: http://127.0.0.1:8102/cpasApi/getApiData body: { "name": "methodApi.getCpasApiMethod", "params": { } } 可查看全部Api ``` 大概结果 ```json { "ok": true, "code": 0, "data": [ "demo1.test.getStr", "demo1.test.test", "demo2.test.getStr", "demo2.test.test", "methodApi.getApiInfo", "methodApi.getCpasApiList", "methodApi.getCpasApiMethod", "methodApi.reload", "methodApi.runMethodApi", "test.getStr" ] } ``` #### 软件架构说明 #### Maven ```xml com.youdatasum method-api 1.0.0 ``` #### Gradle ``` groovy implementation 'com.youdatasum:method-api:1.0.0' ``` #### 使用说明 两步完成API编写 1. Controller 代码 ```java @RequestMapping("/xxx") public class Controller { @Resource IMethodApiManager methodApiManager; @RequestMapping("/getApiData") public Object getApiData(@RequestBody JSONObject jo) { String name = jo.getString("name"); if ((name == null) || "".equals(name)) { return NOT_API_NAME.getResult(); } return methodApiManager.runMethodApi(name, jo.getJSONObject("params")); } } ``` 2. Service 普通类方法 秒变API接口 ```java @Service @CpasApiClass("test") public class Test { @CpasApiMethod public String getString() { return "默认方法名,api名:test.getString"; } @CpasApiMethod(describe = "这里是说明") public static String getString1(String str) { return "带参数:" + str; } } ``` 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)