丰富的接口服务
学习目标
在这里,你将系统学习了解 丰富的接口服务
的具体代码实现
我们将以最简单直接
的方式为您呈现内容!
在
分布式服务架构
中,我们已经把 memory-api-backend 一体化服务架构进行了简单的微服务重构,总共分为三个模块:- memory-api-backend:
- memory-gateway:
- memory-client:
在这里,我们将系统设计 memory-client 微服务模块,扩充多个接口服务,供外部调用
# 🍨 服务初始化
# 配置管理
- 在
memory-backend-application
子服务的 application.xml 文件中,配置服务启动端口
、MySQL 数据库连接
等内容:
server:
port: 8123
servlet:
context-path: /api
spring:
# 服务名称
application:
name: memory-client
# MySQL 管理
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/******
username: ******
password: ******
# 🍚 自主设计接口服务
# 获取随机诗词
- 在 model/domain/ 目录下,设计 Words 实体类,映射数据库表结构:
/**
* @TableName words
*/
@TableName(value = "words")
@Data
public class Words implements Serializable {
private Long id;
private String name;
private String content;
private Integer type;
private Integer isDelete;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
}
- 在 mapper/ 目录下,设计 WordsMapper 方法,交互本地数据库,获取诗词信息:
@Mapper
public interface WordsMapper extends BaseMapper<Words> {
/**
* 返回随机名言
*
* @param type 类型
* @return 随机名言
*/
Words getRandomWord(Integer type);
}
<select id="getRandomWord" resultType="memory.cloud.memoryclient.model.domain.Words">
select * from words where type = #{type} ORDER BY RAND() LIMIT 1;;
</select>
- 在 controller 下,编写接口,调用 WordsMapper 方法,接收并响应客户端请求,返回一首随机诗词:
/**
* @author 邓哈哈
* 2023/7/28 22:52
* Function: 随机生成一首诗词
* Version 1.0
*/
@RestController
@RequestMapping("/words")
public class WordsController {
@Resource
private WordsMapper wordsMapper;
@PostMapping("/one/random")
public Words getRandomWord(@RequestBody Words words) {
Integer type = words.getType();
return wordsMapper.getRandomWord(type);
}
}