首页>代码>Spring Boot整合VueJS+spring data jpa实现RESTful API实例>/springboot-mockmvc-hsql/src/main/java/com/hellokoding/springboot/restful/StockAPI.java
package com.hellokoding.springboot.restful;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@RequiredArgsConstructor
@Slf4j
@RestController
@RequestMapping("/api/v1/stocks")
public class StockAPI {
private final StockService stockService;
@GetMapping
public ResponseEntity<List<Stock>> findAll() {
return ResponseEntity.ok(stockService.findAll());
}
@GetMapping("/{stockId}")
public ResponseEntity<Stock> findById(@PathVariable Long stockId) {
Optional<Stock> stockOptional = stockService.findById(stockId);
if (!stockOptional.isPresent()) {
log.error("StockId " + stockId + " is not existed");
ResponseEntity.badRequest().build();
}
return ResponseEntity.ok(stockOptional.get());
}
@PostMapping
public ResponseEntity create(@RequestBody Stock stock) {
return ResponseEntity.status(HttpStatus.CREATED).body(stockService.save(stock));
}
@PatchMapping("/{stockId}")
public ResponseEntity<Stock> update(@PathVariable Long stockId, @RequestBody Stock updatingStock) {
Optional<Stock> stockOptional = stockService.findById(stockId);
if (!stockOptional.isPresent()) {
log.error("StockId " + stockId + " is not existed");
ResponseEntity.badRequest().build();
}
Stock stock = stockOptional.get();
if (!StringUtils.isEmpty(updatingStock.getName())) stock.setName(updatingStock.getName());
if (!Objects.isNull(updatingStock.getPrice())) stock.setPrice(updatingStock.getPrice());
return ResponseEntity.accepted().body(stockService.save(stock));
}
@DeleteMapping("/{id}")
public ResponseEntity delete(@PathVariable Long id) {
stockService.deleteById(id);
return ResponseEntity.accepted().build();
}
}
最近下载更多
最近浏览更多
sunlea LV20
10月24日
哪里的完整版 LV8
2月27日
yy1124218793 LV9
2月8日
微信网友_6955249237250048 LV5
2024年12月28日
langya LV9
2024年11月17日
hhh12345 LV7
2024年1月19日
duon12 LV1
2023年9月25日
张朕朕 LV3
2023年9月10日
38735466 LV11
2023年8月25日
qq1357574774 LV2
2023年8月11日

