首页>代码>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();
    }
}
最近下载更多
jaonsang  LV25 2022年9月13日
Uless  LV2 2021年9月17日
Charlie89  LV3 2021年2月25日
seanwang  LV8 2020年12月23日
simple丶余心  LV21 2020年11月4日
最近浏览更多
哪里的完整版  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日
西瓜哥哥  LV4 2023年8月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友