學習使用Spring-boot如何開簡易的接口,同時看到這篇文章介紹如何規範接口,做下記錄。
很早以前有用過Eclipse來寫過簡單的接口,那也是入門級的,現在學習spring-boot,嗯,真香!神器!
初學的話直接到spring官網,https://start.spring.io/ 下載最簡單的demo,要勾選web依賴
下載後解壓,就可以用IDEA打開了,這裏如果一直在下載依賴的話,需要settings.xml文件使用阿里的鏡像來加快構建,具體百度。
1、最簡單的接口
直接在Application類裏編寫
@RequestMapping("/hello")
public String hello() {
return "Hello Spring";
}
在java環境一切正常的情況下,運行項目,便可以直接訪問 http://localhost:8080/hello來驗證是否成功了,如果一切順利的話 會得到輸出 字符串 “Hello Spring”;
由於參照 統一接口規範.這篇文章,已經對返回接口做了封裝處理,data裏的值纔是方法return的內容。(忽略亂碼)。後面的接口也是如此。
當然這只是最簡單的接口,接下來來個稍微複雜點的
2、GetMapping獲取對象
@GetMapping("/getUser")
public User getUser() {
User user = new User();
user.setSex(1);
user.setAge(21);
user.setPsw("12345678");
user.setName("[email protected]");
return (user);
}
這和上面那個都是get形式的接口,運行http://localhost:8080/getUser,會得到如下字符串。
以上是不帶參數的GET接口,接下來是糾結我半天的問題了
3、POST請求
同樣是 統一接口規範.這篇文章,給post請求添加參數校驗之後,寫了這樣的代碼
/**
* 參數是對象,則請求接口時 需要上傳raw格式的對象json 此處爲 user對象的json格式
*
* @param user
* @return
*/
@PostMapping(value = "/login")
public User login(@RequestBody @Valid User user) {
//驗證處理
return user;
}
這個時候用postman來訪問的時候,就要命,使用Parms 或者 Body 訪問都提示content type **** not supported。
它會提示Required request body is missing: public com.wyl.demospring.beans.User com.wyl.demospring.DemospringApplication.login(com.wyl.demospring.beans.User)]
它會提示 Content type 'multipart/form-data;boundary=--------------------------774540668608363326325112;charset=UTF-8' not supported]
以上兩種方式請求POST都不行!!!
百度了很久才搞明白。。。參數列表接收的是User對象,用postman請求的時候需要選擇Raw欄 裏面字符串得要是User對象的json格式,並且選擇 json 。這裏也是爲難一個一直搞Android的菜雞程序員啊,對後臺知識瞭解得不多。
上面失敗的那兩種只適合如下的接口形式,以鍵值的形式。也就是參數列表是零散的一個個參數字段
/**
* key-value形式
* 參數是以列表形式 則post請求接口時 可以拼接參數 也可以body提交
*
* @param name
* @param psw
* @return
*/
@RequestMapping(value = "/login2", method = RequestMethod.POST)
public String login2(@RequestParam String name, @RequestParam String psw) {
//驗證處理
return "登錄成功";
}
要掌握各個註解的意思以及用法
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping
以上便是對spring-boot開接口的一個學習記錄。