package org.edwith.webbe.calculator.service;
import org.springframework.stereotype.Service;
// CalculatorService클래스는 컴포넌트 스캔을 통해 자동으로 Bean으로 등록
@Service
public class CalculatorService {
public int plus(int value1, int value2){
return value1 + value2;
}
public int minus(int value1, int value2){
return value1 - value2;
}
}
2-1. CalculatorResult.java
package org.edwith.webbe.calculator.dto;
public class CalculatorResult {
// 아래의 상수값은 enum으로 변경 가능하다.
public static final String PLUS_OPERATION = "+";
public static final String MINUS_OPERATION = "-";
private int value1;
private int value2;
private String operation;
private int result;
public int getValue1() {
return value1;
}
public void setValue1(int value1) {
this.value1 = value1;
}
public int getValue2() {
return value2;
}
public void setValue2(int value2) {
this.value2 = value2;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
}
2-2. CalculatorApiController.java
package org.edwith.webbe.calculator.controller.api;
import io.swagger.annotations.*;
import org.edwith.webbe.calculator.dto.CalculatorResult;
import org.edwith.webbe.calculator.service.CalculatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(path = "/api/calculator")
public class CalculatorApiController {
@Autowired
private CalculatorService calculatorService;
// Swagger 문서화를 돕기 위한 어노테이션
@ApiOperation(value = "덧셈 구하기")
@ApiResponses({ // Response Message에 대한 Swagger 설명
@ApiResponse(code = 200, message = "OK"),
@ApiResponse(code = 500, message = "Exception")
})
@GetMapping("/plus")
public CalculatorResult plus(@RequestParam("value1")int value1, @RequestParam("value2") int value2){
CalculatorResult calculatorResult = new CalculatorResult();
calculatorResult.setValue1(value1);
calculatorResult.setValue2(value2);
calculatorResult.setOperation(CalculatorResult.PLUS_OPERATION);
calculatorResult.setResult(calculatorService.plus(value1, value2));
return calculatorResult;
}
@ApiOperation(value = "뺄셈 구하기")
@ApiResponses({ // Response Message에 대한 Swagger 설명
@ApiResponse(code = 200, message = "OK"),
@ApiResponse(code = 500, message = "Exception")
})
@GetMapping("/minus")
public CalculatorResult minus(@RequestParam("value1")int value1, @RequestParam("value2") int value2){
CalculatorResult calculatorResult = new CalculatorResult();
calculatorResult.setValue1(value1);
calculatorResult.setValue2(value2);
calculatorResult.setOperation(CalculatorResult.MINUS_OPERATION);
calculatorResult.setResult(calculatorService.minus(value1, value2));
return calculatorResult;
}
}
reference
Swagger 개요 - https://www.boostcourse.org/web326/lecture/58988