目錄
1.基于Restfu1進行表現層接口開發
1.1創建功能類
1.2基于Restful制作表現層接口
2.接收參數
2使用Apifox測試表現層接口功能
保存接口:
分頁接口:
3.表現層一致性處理
3.1先創建一個工具類,用作后端返回格式統一類:
3.2表現層接口統一返回值類型結果:
3.3 小結:
1.基于Restfu1進行表現層接口開發
1.1創建功能類
創建一個表現層功能類BookController,位置如下圖所示:
代碼如下所示:
package com.summer.controller;import com.summer.domain.Book;
import com.summer.service.IBookService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import java.util.List;@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate IBookService bookService;@GetMappingpublic List<Book> getAll() {return bookService.list();}@PostMappingpublic Boolean save(@RequestBody Book book) {return bookService.save(book);}@PutMappingpublic Boolean update(@RequestBody Book book) {return bookService.modify(book);}@DeleteMapping("{id}")public Boolean delete(@PathVariable Integer id) {return bookService.delete(id);}@GetMapping("{id}")public Book getById(@PathVariable Integer id) {return bookService.getById(id);}@GetMapping("{currentPage}/{pageSize}")public IPage<Book> getPage(@PathVariable Integer currentPage, @PathVariable Integer pageSize) {IPage page = new Page(currentPage, pageSize);return bookService.page(page, null);}
}
1.2基于Restful制作表現層接口
- 新增:POST
- 制除:DELETE
- 修改:PUT
- 查詢:GET
2.接收參數
-
實體數據:@RequestBody路徑變量:@PathVariable
2使用Apifox測試表現層接口功能
-
保存接口:
傳遞的數據按照Book的數據結構,通過body參數,json格式傳遞到后端
-
分頁接口:
3.表現層一致性處理
設計表現層返回結果的模型類,用于后端與前端進行數據格式統一,也稱為前后端數據協議
3.1先創建一個工具類,用作后端返回格式統一類:
代碼如下所示:
package com.summer.controller.Utils;import lombok.Data;@Data
public class R {private Boolean flag;private Object data;public R() {}public R(Boolean flag) {this.flag = flag;}public R(Boolean flag, Object data) {this.flag = flag;this.data = data;}
}
3.2表現層接口統一返回值類型結果:
package com.summer.controller;import com.summer.controller.Utils.R;
import com.summer.domain.Book;
import com.summer.service.IBookService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import java.util.List;@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate IBookService bookService;@GetMappingpublic R getAll() {return new R(true, bookService.list());}@PostMappingpublic R save(@RequestBody Book book) {return new R(bookService.save(book));}@PutMappingpublic R update(@RequestBody Book book) {return new R(bookService.modify(book));}@DeleteMapping("{id}")public R delete(@PathVariable Integer id) {return new R(bookService.delete(id));}@GetMapping("{id}")public R getById(@PathVariable Integer id) {return new R(true, bookService.getById(id));}@GetMapping("{currentPage}/{pageSize}")public R getPage(@PathVariable Integer currentPage, @PathVariable Integer pageSize) {IPage page = new Page(currentPage, pageSize);return new R(true, bookService.page(page, null));}
}
3.3 小結:
1.設計統一的返回值結果類型便于前端開發讀取數據
2.返回值結果類型可以根據需求自行設定,沒有固定格式
3.返回值結果模型類用于后端與前端進行數據格式統一,也稱為前后端數據協議