Controller
RestController(返回Json)
@RestController = 专门用来“写接口”的 Controller
它告诉Spring,这个类的方法,返回的不是页面,而是数据(JSON / 字符串)
相当于:
@Controller:这是一个 Spring MVC 控制器@ResponseBody:方法返回值直接写到 HTTP 响应里
的结合体
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
return "ok";
}
}
Spring会返回:
HTTP Response Body:
ok
如果这里没有Controller,则Spring会以为return的值是要跳转的页面
项目中返回一个refundOrder
@PostMapping("/updateDemo")
@ApiOperation(value = "post测试")
public RefundOrder updateRefundOrder(@RequestBody DemoVo demoVo){
RefundOrder refundOrder = refundOrderService.updateRefundDemo(demoVo.getId(), demoVo.getMoney());
return refundOrder;
}
返回的response body:
{
"id": 1,
"outTradeNo": "1234",
"flowCode": null,
"createdAt": "2026-01-02T14:14:56.000+0000",
"money": 22.68,
"payType": null,
"hospitalCode": null
}
传入的值不为json时
public RefundOrder updateRefundOrder(Long id, Double money){
RefundOrder refundOrder = refundOrderService.updateRefundDemo(id, money);
return refundOrder;
}
调用时直接是id = xxx,money = xxx的参数
url传参时
@PostMapping("/updateDemo/{id}")
@ApiOperation(value = "post测试")
public RefundOrder updateRefundOrder(@PathVariable Long id, Double money){
RefundOrder refundOrder = refundOrderService.updateRefundDemo(id, money);
return refundOrder;
}
传入的值为json时
public RefundOrder updateRefundOrder(@RequestBody DemoVo demoVo){
RefundOrder refundOrder = refundOrderService.updateRefundDemo(demoVo.getId(), demoVo.getMoney());
return refundOrder;
}
这里需要一个对象来接收值
@Data
public class DemoVo {
private Long id;
private Double money;
}
因为 JSON 的“天然形态”是对象 {},
而 Java 的 Long / String 这种“单值”,并不适合直接接 JSON。
传入:
{
"id": 1,
"money": 233.3
}
Swagger
Spring 2.1.8
- 加依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
- 在启动类上加注解
@EnableSwagger2,开启Swagger
@EnableSwagger2
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
- 在Controller(类上)加
@Api(value = "xxx"),在接口方法上加@ ApiOperation(value = "xxxx")