编写微服务api

1.创建实体类模块

2.导入lombok

XML 复制代码
<dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

3.添加实体类

java 复制代码
package com.cx;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author Jiang
 * @date 2025/11/7
 */
@Data
public class Order {
    private Long id;
    private BigDecimal totalAmount;
    private Long userId;
    private String nickName;
    private String address;
    private List<Product> productList;
}
java 复制代码
package com.cx;

import lombok.Data;

import java.math.BigDecimal;

/**
 * @author Jiang
 * @date 2025/11/7
 */
@Data
public class Product {
    private Long id;
    private BigDecimal price;
    private String productName;
    private int num;
}

4.在services的pom文件中导入model

XML 复制代码
 <dependency>
    <groupId>com.cx</groupId>
    <artifactId>model</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

5.基本流程

6.product模块代码

java 复制代码
package com.cx.product.controller;

import com.cx.Product;
import com.cx.product.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author Jiang
 * @date 2025/11/7
 */
@RestController
public class ProductController {
    @Autowired
    ProductService productService;

    @GetMapping(value = "/productId/{id}")
    public Product getProductById(@PathVariable("id") Long productId) {
        return productService.getProductById(productId);
    }
}
java 复制代码
package com.cx.product.service;

import com.cx.Product;

/**
 * @author Jiang
 * @date 2025/11/7
 */
public interface ProductService {
    Product getProductById(Long productId);
}
java 复制代码
package com.cx.product.service.impl;

import com.cx.Product;
import com.cx.product.service.ProductService;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;

/**
 * @author Jiang
 * @date 2025/11/7
 */
@Service
public class ProductServiceImpl implements ProductService {
    @Override
    public Product getProductById(Long productId) {
        Product product = new Product();
        product.setId(productId);
        product.setPrice(new BigDecimal("99"));
        product.setProductName("苹果-" + productId);
        product.setNum(11);
        return product;
    }
}

7.order模块代码

java 复制代码
package com.cx.order.controller;

import com.cx.Order;
import com.cx.order.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author Jiang
 * @date 2025/11/7
 */
@RestController
public class OrderController {
    @Autowired
    OrderService orderService;

    @GetMapping(value = "/create")
    public Order createOrder(@RequestParam("userId") Long userId, @RequestParam("productId") Long productId) {
        return orderService.createOrder(userId, productId);
    }
}
java 复制代码
package com.cx.order.service;

import com.cx.Order;

/**
 * @author Jiang
 * @date 2025/11/7
 */
public interface OrderService {
    Order createOrder(Long userId, Long productId);
}
java 复制代码
package com.cx.order.service.impl;

import com.cx.Order;
import com.cx.order.service.OrderService;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;

/**
 * @author Jiang
 * @date 2025/11/7
 */
@Service
public class OrderServiceImpl implements OrderService {
    @Override
    public Order createOrder(Long userId, Long productId) {
        Order order = new Order();
        order.setId(1L);
        //TODO 总金额
        order.setTotalAmount(new BigDecimal("0"));
        order.setUserId(userId);
        order.setNickName("张三");
        order.setAddress("火星");
        //TODO 远程查询商品列表
        order.setProductList(null);
        return order;
    }
}
相关推荐
hz567891 小时前
好视通视频会议解决方案:需求分析、平台架构与价值实现(2026 完整版)
架构·音视频·实时音视频·需求分析·信息与通信
heimeiyingwang1 小时前
【架构实战】消息队列选型与异步架构设计:从Kafka到RabbitMQ,一次聊透
架构·kafka·rabbitmq
聊浮游2 小时前
运维2026全套最新学习资料
运维·微服务·云原生·容器
会周易的程序员11 小时前
aiDgePLC iec61131 虚拟机 完整使用文档
c++·物联网·架构·st·iec61131
宇擎智脑科技13 小时前
DeepSeek Harness 架构解析:MCP 和 Skill 如何被统一为 Cordis 插件
架构·deepseek·harness·dsh
这个DBA有点耶14 小时前
分布式数据库到底该不该上?从判断标准到架构选型的实战思考
数据库·架构·dba
楚识科技15 小时前
破除通用瓶颈——企业级OCR定制化开发的架构思维与实战范式
架构·ocr
刘立军15 小时前
RESTful 与契约优先:规范接口定义,统一接口设计范式
后端·架构·ai编程
heimeiyingwang15 小时前
【架构实战】分布式事务:从CAP定理到Seata实战,一文讲透跨服务数据一致性
分布式·架构
独孤九剑打醒他16 小时前
RGB‑TOT 全架构系统仿真:红外波长簇光通信完整验证
架构