API 敏捷开发工具

API 敏捷开发工具

参考文档

https://mp.weixin.qq.com/s?__biz=MzAwMjk5Mjk3Mw==&mid=2247494877&idx=1&sn=f79de6a4e99b2c4d1839b7cc065c768d&chksm=9ac352ffadb4dbe9a89b565bbfb71fa65473ec2aee8cda7c30b5eacb061b61ccfd1e7b41d3d8&mpshare=1&scene=23&srcid=0113CsyEhRe5e01rRkXlfAML&sharer_sharetime=1610587783445&sharer_shareid=9d1e76e919cc0b2f3ca23ed1f5ef67a8#rd

项目的gitee地址

注意:第一个地址可能失效

https://gitee.com/alenfive/rocket-api-doc/wikis/pages

https://gitee.com/alenfive/rocket-api?_from=gitee_search

demo入门实例地址

https://gitee.com/alenfive/rocket-api-demo

具体api地址

https://alenfive.gitbook.io/rocket-api/

快速开始

1. 添加依赖

<dependency>
    <groupId>com.github.alenfive</groupId>
    <artifactId>rocket-api-boot-starter</artifactId>
    <version>2.2.4.RELEASE</version>
</dependency>

2. 数据源配置,继承

配置类

@Component
public class DefaultDataSourceManager extends DataSourceManager {
    
    @Autowired
    private JdbcTemplate jdbcTemplate;@PostConstruct
    public void init() {
    
    
​
        Map<String,DataSourceDialect> dialects = new HashMap<>();
        //通过MysqlDataSource的第二个参数为`true`来表示生成的API信息所存储的库,有且仅有一个为true
        dialects.put("mysql",new MySQLDataSource(jdbcTemplate,true));
        super.setDialectMap(dialects);
    }
}

3. 关系型数据库建表,非关系型不用

导入rocket-api需要的数据库建表脚本到项目的数据库

mysql为例子,下面时建表脚本:

CREATE TABLE `api_info` (
  `id` varchar(45) NOT NULL,
  `method` varchar(45) DEFAULT NULL,
  `path` varchar(100) DEFAULT NULL,
  `type` varchar(5) DEFAULT NULL COMMENT '类型:CODE,QL',
  `service` varchar(45) DEFAULT NULL,
  `group_name` varchar(45) DEFAULT NULL,
  `editor` varchar(45) DEFAULT NULL,
  `name` varchar(200) DEFAULT NULL,
  `datasource` varchar(45) DEFAULT NULL,
  `script` text,
  `options` text,
  `create_time` varchar(45) NULL DEFAULT NULL,
  `update_time` varchar(45) NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_path_method` (`service`,`path`,`method`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='路径明细';

CREATE TABLE `api_example` (
  `id` varchar(45) NOT NULL,
  `api_info_id` varchar(45) NOT NULL,
  `method` varchar(45) DEFAULT NULL,
  `url` text,
  `request_header` text,
  `request_body` text,
  `response_header` text,
  `response_body` text,
  `status` varchar(10) DEFAULT NULL,
  `elapsed_time` int(11) DEFAULT NULL,
  `options` text,
  `editor` varchar(45) DEFAULT NULL,
  `create_time` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_api_id` (`api_info_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='模拟数据';

CREATE TABLE `api_info_history` (
  `id` varchar(45) NOT NULL,
  `api_info_id` varchar(45) NOT NULL,
  `method` varchar(45) DEFAULT NULL,
  `path` varchar(100) DEFAULT NULL,
  `type` varchar(5) DEFAULT NULL COMMENT '类型:CODE,QL',
  `service` varchar(45) DEFAULT NULL,
  `group_name` varchar(45) DEFAULT NULL,
  `editor` varchar(45) DEFAULT NULL,
  `name` varchar(200) DEFAULT NULL,
  `datasource` varchar(45) DEFAULT NULL,
  `script` text,
  `options` text,
  `create_time` varchar(45) NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='路径明细历史';


-- 开启spring.rocket-api.config-enabled: true 才需要此表
CREATE TABLE `api_config` (
  `id` varchar(45) NOT NULL,
  `service` varchar(45) NOT NULL,
  `config_context` text,
  PRIMARY KEY (`id`),
  UNIQUE KEY `key_UNIQUE` (`id`),
  UNIQUE KEY `service_UNIQUE` (`service`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

最新建表脚本查看: 数据库创建脚本

启动项目,访问地址: http://localhost:8080/interface-ui

4.demo实例地址

只需要按以上步骤配置到

https://gitee.com/alenfive/rocket-api-demo

踩坑记录

1.指定项目名称,不然项目启动报错


spring:
  application:
    name: basic_project

说明:一定要指定项目名称,否则项目启动失败

2.项目的访问网址

项目的访问网址在项目启动后打印在控制台上

image-20210130164258999

测试

1.测试的建表脚本

方便测试期间,我就建一个很简单的表

 CREATE TABLE `demo` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
  PRIMARY KEY (`id`)
);
-- 插入三条测试数据
insert into demo select null , 'root1' from dual;
insert into demo select null , 'root2' from dual;
insert into demo select null , 'root3' from dual;

查看表中数据


MariaDB [basic_project]> select * from demo;
+----+-------+
| id | name  |
+----+-------+
|  1 | root1 |
|  2 | root2 |
|  3 | root3 |
+----+-------+
3 rows in set (0.000 sec)

2.测试查询所有

设置

image-20210130165806099

查看api接口明细

image-20210130165921713

image-20210130170100437

3.测试查询一个(按id查询)

语法具体参考

//数量统计,返回Long
return db.count("select count(1) from user");

//返回命中的第一条记录,MAP类型
return db.findOne("select * from user where id = #{id}");

//返回命中的所有记录,返回LIST
return db.find("select * from user");

//插入 返回主键ID,Object类型
return db.insert("insert into user(name) values(#{name})");

//更新 返回更新的数量
return db.update("update user set name=#{name} where id = #{id}");

//删除 返回删除的数量
sql = """
 delete from user
 where id = #{
    
    id}
"""
return db.remove(sql);

//自动分页
return db.pager("select * from user")

//操作指定数据源
return db.findOne("select * from user where id = #{id}","mysql");

问号传参数的方式

image-20210130172240922

image-20210130172209343

restful传参数的方式

image-20210130171844295

image-20210130171928367

4.插入一条记录返回主键ID

image-20210130172457902

image-20210130172725792

到数据库进行验证

MariaDB [basic_project]> select * from demo where id = 7;
+----+-------+
| id | name  |
+----+-------+
|  7 | root7 |
+----+-------+
1 row in set (0.001 sec)

5.条件查询

说明:

正常情况下按条件查询是返回集合的,这边查了id,就是模拟一下,不要台较真

比较

return db.find("select * from demo where id = #{id} and name=#{name}");
return db.findOne("select * from demo where id = #{id}");
/**
结果集中返回集合使用find
结果集是一个json对象,就使用findOne
*/

image-20210130201241527

传入参数为json格式的字符窜,请求方式为post

image-20210130202014678

传入参数试k-v键值对

image-20210130202230472

总结

说明:

其余的用法见官方文档

使用起来还是比较方便的

1.引入依赖

2.写配置类

3.导入插件需要的建表脚本到项目对应的数据库中

结果集是一个json对象,就使用findOne
*/




[外链图片转存中...(img-GLSCgYEf-1612009621821)]

`传入参数为json格式的字符窜,请求方式为post`

[外链图片转存中...(img-GBTW7Jyz-1612009621822)]

传入参数试k-v键值对

[外链图片转存中...(img-xWWJj679-1612009621823)]



## 总结

说明:

> 其余的用法见官方文档

使用起来还是比较方便的

1.引入依赖

2.写配置类

3.导入插件需要的建表脚本到项目对应的数据库中

4.直接访问地址就可以使用rocket-api

猜你喜欢

转载自blog.csdn.net/shaoming314/article/details/113445933