本例子是再springboot-base 基础上进行
新建一个包用来存放接口类文件
再新建一个HelloWorld类文件敲上如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| package com.example.springbootbase.controller;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody;
import java.util.*;
@Controller public class HelloWorld {
List<String> list_str = Arrays.asList("java","php","go","c");
Map map_str = new HashMap<String,String>();
@GetMapping("/hello") public String hello(){ return "hello world"; } @ResponseBody @GetMapping("list") public Object getList() { return list_str; } @ResponseBody @GetMapping("list/{index}") public Object getListByIndex(@PathVariable("index") int index){ return list_str.get(index); } @GetMapping("list01/{index}") public Object getListByIndex01(@PathVariable("index") int index){ return list_str.get(index); } @ResponseBody @GetMapping("map/{key}") public Object getValueByKeyOnMap(@PathVariable ("key") String key){ return map_str.get(key); } @ResponseBody @PostMapping("map/{key}/{value}") public Object putMapBykv( @PathVariable("key") String key, @PathVariable("value") String value) { map_str.put(key,value); return "success"; } }
|
启动项目打开浏览器(或用接口测试工具 例:postman)测试
浏览器请求 /hello 接口404错误 是因为 该接口没有加 @ResponseBody 注解。系统会去找页面。由于页面没有配置,所以这里出现404
请求list 接口 数据正常返回了
这个是用 postman 测试list接口 也正常返回了
测试 /list/0 接口返回了 list 的0位数据,正常得到了 java
访问/list01/0 接口。虽然接口内容相同。 出现400 是因为接口没有加上 @ResponseBody 注解。
出现了405 是因为 请求方法不对。后台这个接口请求得 用post 方式请求(浏览器默认是GET方式请求)。
下面用工具 用post方式 请求就正常了。
这里 再通过 /map/{key}接口获取 刚刚 存入map 里的数据。正常返回!
听说前后台都是用JSON数据进行交互的,这里我要返回一个json字符串怎么办。
我们先加上这样一个方法
1 2 3 4 5 6 7 8 9
| @ResponseBody @GetMapping("getjson") public Object getjson( ) { map_str.put("我要学习","java"); map_str.put("我要认真学习","数据库"); map_str.put("我要好好学习","spring"); map_str.put("所以我今晚打算","去搓麻将"); return map_str; }
|
然后重启项目
然后浏览器访问:
用postman访问:
postman 自动将返回的数据格式化了。
ps:由于map 是无序的 所以这里得到的结果是无序的。
使用工具来测试接口。可以更直观的看到请求方式、参数列表、请求状态、响应时间、数据大小。并且填写好备注后,可以直接生成接口文档。