编写微服务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;
    }
}
相关推荐
小艾.pino8 分钟前
MiniMax M3顶住新一代多模态大模型的架构与实战
人工智能·架构
IT小白杨2 小时前
多店铺防关联指纹浏览器哪个好:从账号关联判定模型到环境隔离架构的一次拆解
经验分享·物联网·矩阵·架构·指纹浏览器
223糖2 小时前
思考 AI 应用架构
人工智能·架构
云祺vinchin2 小时前
桌面云如何高效备份?某科技公司灾备建设实战
云原生·数据安全·数据备份·无代理备份·桌面云
Dawson Zhu3 小时前
从理论到工程化:构建可靠Agent系统的六大核心工件与实战指南
人工智能·语言模型·架构·aigc·agi
她的男孩3 小时前
接口加密做成框架级能力有多难?我扒了 3600 行源码:从 RSA 握手到落库密文迁移
人工智能·后端·架构
老周聊架构3 小时前
Ontology:Palantir 架构真正的核心,不是数据库也不是知识图谱
数据库·架构·知识图谱
视频技术分享3 小时前
视频会议系统技术全解:底层架构、选型标准与实战优化
架构·音视频
国科安芯4 小时前
面向卫星测控应答机的抗辐射MCU信号采集与定时控制研究
单片机·嵌入式硬件·mcu·架构·卫星·商业航天·抗辐射
阿里云云原生4 小时前
从 NL2SQL 到自动巡检:乐檬如何打造面向多租户 SaaS 的全链路可观测性体系?
云原生