這篇偏向於RESTful Web Service的簡單地介紹以及如何於Spring架構中建構RESTful Web Service
如果你想更深入的了解RESTful Web Service如何設計的話我建議要去找些相關書局或到GitHub上去尋找著
適合你的設計模式,在上下章將會來做一個REST Web Service來完成一個CRUD範例
REST是一個設計理念, REST把所有WEB上的東西都以一個資源(Resource)去看待,並且所有資源都會有一個URI(Uniform Resource Identifier),RESTful Web Service,符合REST Web服務允許系統使用統一和預定的無狀態操作(Representational state transfer)集訪問和操作Web資源
Ex:
我們以Google的API當例子,當你訪問了以下URL將得到什麼樣的結果?
https://maps.googleapis.com/maps/api/geocode/json?address=taipei&sensor=false
得到的結果為以下圖示:
我們訪問得到的結果得到了台北地圖的相關數據並以JSON格式回傳到我們的Client端,你可以試著將json改成xml
格式的話得到的將會是xml格式的數據格式
這裡指的標準是協定的標準,REST只是種設計風格
1.所有的API或是以Resource的形式存在。
2.這個服務可以接受與返回某個MIME-TYPE,最常見的是JSON格式,也可以回傳PNG/JPG/TXT等格式。
3.對資源的操作會支援HTTP請求方法 (例如GET, POST, PUT, DELETE)
RESUful傳輸架構風格最重要的架構約束有6個:
Client-Server
)Stateless
)Cache
)Uniform Interface
)Layered System
)Code-On-Demand
,可選)1.確認你的pom.xml的依賴要有spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.建立MemberAccount Model數據模型
package com.tutorial.Model;
import org.springframework.stereotype.Component;
@Component
public class MemberAccount{
private int id;
private String email;
private String cellphone;
private String password;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCellphone() {
return cellphone;
}
public void setCellphone(String cellphone) {
this.cellphone = cellphone;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
3.建立一個RestController:MemberApiController.java
package com.tutorial.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.tutorial.Model.MemberAccount;
@RestController
public class MemberApiController {
@Autowired
MemberAccount memberAccount;
@RequestMapping("/memberApi/memberTest")
public MemberAccount memberTest() {
MemberAccount memberAccount = new MemberAccount();
memberAccount.setAddress("台北市");
memberAccount.setCellphone("09123456789");
memberAccount.setEmail("test@gmail.com");
memberAccount.setId(1);
memberAccount.setPassword("123456789");
return memberAccount;
}
}
1.(https://en.wikipedia.org/wiki/Representational_state_transfer ) wiki
2.(https://goo.gl/VyxBbf )
3.(https://spring.io/guides/gs/rest-service/ )
1.我們打造了一個RESTful控制器,但是這樣並非是個RESTful Web Service,要按照RESTful風格來撰寫才是真正的RESTful Web Service
2.第一步要先確認我們的API入口是否能進入