iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
Modern Web

Spring Boot and React - 前後端 30 天分手日記系列 第 11

Day 11 - Controller And RESTful (1)

Day 10 - Lombok 簡化與加速開發流程 (2)

上一章介紹了Lombok, 今天正式進入Controller

現在API介接最流行的莫過於RESTful

到底什麼是RESTful呢?

RESTful並不是一個新的語言, 或library功能

他是一種規範, 一種定義

相信寫過WEB項目的都知道, 以往大家都用GET跟POST, 介面接口與參數都各自定義

若你沒有相關文件, 根本不知道寫的人是如何定義的

於是一個統一規範與定義的RESTful就出現了

以HTTP傳輸協定, 來當作請求分類:

GET: 請求資料

POST: 新增資料

PUT: 更新資料

DELETE: 刪除資料

當然, Spring也支援相關的Annontation, 能讓大家快速使用

在我們的backend專案下新增Controller資料夾

然後新增一個MemberController.java

@RestController
@RequestMapping("/api")
public class MemberController {

    @Autowired
    private MemberRepository memberRepository;

    @GetMapping("/members")
    public Collection<Member> members() {
        return memberRepository.findAll();
    }

    @GetMapping("/member/{id}")
    public ResponseEntity<?> getMember(@PathVariable Long id) {
        Optional<Member> member = memberRepository.findById(id);
        return member.map(response -> ResponseEntity.ok().body(response))
                .orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
    }

}

@RestController:

等於@Controller + @ResponseBody, ResponseBody會將返回結果直接寫在Http Response Body中

因為我們資料傳輸時通常只傳回Json, 所以大部分都會使用這Annotation

頁面的導頁與指定會交由前端(React)來做, 之後在React會再教大家

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping等方法

與Http的GET, POST, PUT, DELETE等方法相對應, 只要遵守RESTful規範直接使用即可

@PathVariable:

會從URL上讀取輸入的參數

新增完執行專案, 在瀏覽器上輸入localhost:8080/api/members

https://ithelp.ithome.com.tw/upload/images/20190927/20119510YW1e39x3Sg.png

如此便能拿到我們要的json資料了

下一章 Day 12 - Controller And RESTful (2)


上一篇
Day 10 - Lombok 簡化與加速開發流程 (2)
下一篇
Day 12 - Controller And RESTful (2)
系列文
Spring Boot and React - 前後端 30 天分手日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言