MemoryAPI 开发者文档 MemoryAPI 开发者文档
首页
    • 概述
    • 系统设计
    • 维护升级
    • 多元 API 生态
    • 高效 SDK 集成
    • 实时流量监控
    • 资源集中治理
    • 个人信息管理
    • 内容概览
    • Ant Design Pro 脚手架
    • OpenAPI 生成接口
    • Vuepress 静态文档站点
    • 基础信息管理
    • 丰富的接口服务
    • 高校 SDK 集成
    • Maven 聚合工程
    • Nacos 注册中心
    • Gateway 网关
    • 远程服务调用
    • API 签名认证
    • JWT 认证授权
    • Dubbo 容器部署
    • 其他核心功能
    • 定制 Spring Boot 初始模板
    • 全局业务逻辑梳理
  • 简介
  • 常见问题与解答
首页
    • 概述
    • 系统设计
    • 维护升级
    • 多元 API 生态
    • 高效 SDK 集成
    • 实时流量监控
    • 资源集中治理
    • 个人信息管理
    • 内容概览
    • Ant Design Pro 脚手架
    • OpenAPI 生成接口
    • Vuepress 静态文档站点
    • 基础信息管理
    • 丰富的接口服务
    • 高校 SDK 集成
    • Maven 聚合工程
    • Nacos 注册中心
    • Gateway 网关
    • 远程服务调用
    • API 签名认证
    • JWT 认证授权
    • Dubbo 容器部署
    • 其他核心功能
    • 定制 Spring Boot 初始模板
    • 全局业务逻辑梳理
  • 简介
  • 常见问题与解答
  • 内容概览

    • 概览
  • 前端

    • Ant Design Pro 脚手架
    • OpenAPI 生成接口
    • Vuepress 静态文档站点
  • 后端

    • 基础信息管理
    • 丰富的接口服务
      • 🍨 服务初始化
        • 配置管理
      • 🍚 自主设计接口服务
        • 获取随机诗词
        • 获取随机壁纸
        • 获取当前天气
        • 获取 IP 归属地
    • 高效 SDK 集成
    • Maven 聚合工程
    • Nacos 注册中心
    • Gateway 网关
    • 远程服务调用
    • API 签名认证
    • JWT 认证授权
    • Dubbo 容器部署
    • 其他核心功能
    • 定制 Spring Boot 初始模板
    • 全局业务逻辑梳理
目录

丰富的接口服务

学习目标

在这里,你将系统学习了解 丰富的接口服务的具体代码实现

我们将以最简单直接的方式为您呈现内容!

  • 在分布式服务架构中,我们已经把 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);
    }
}

# 获取随机壁纸

# 获取当前天气

# 获取 IP 归属地

基础信息管理
高效 SDK 集成

← 基础信息管理 高效 SDK 集成→

Theme by Vdoing | Copyright © 2023-2024 回忆如初
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式