diff --git a/pom.xml b/pom.xml index ca51326..ca22bf1 100644 --- a/pom.xml +++ b/pom.xml @@ -81,8 +81,18 @@ pagehelper 4.2.1 - - + + + io.springfox + springfox-swagger2 + 2.6.1 + + + io.springfox + springfox-swagger-ui + 2.6.1 + + diff --git a/src/main/java/com/xwolf/boot/config/SwiggerConfig.java b/src/main/java/com/xwolf/boot/config/SwiggerConfig.java new file mode 100644 index 0000000..9b44810 --- /dev/null +++ b/src/main/java/com/xwolf/boot/config/SwiggerConfig.java @@ -0,0 +1,45 @@ +package com.xwolf.boot.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + *

+ * swigger 整合管理API接口 + * 参考http://www.jianshu.com/p/8033ef83a8ed + *

+ * + * @author xwolf + * @date 2017-02-26 20:12 + * @since V1.0.0 + */ +@Configuration +@EnableSwagger2 +public class SwiggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.xwolf.boot.controller")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("Spring Boot中使用Swagger2构建RESTful APIs") + .description("更多Spring Boot相关文章请关注:http://blog.didispace.com/") + .termsOfServiceUrl("http://blog.didispace.com/") + .contact("程序猿") + .version("1.0") + .build(); + } +} diff --git a/src/main/java/com/xwolf/boot/controller/ApiController.java b/src/main/java/com/xwolf/boot/controller/ApiController.java new file mode 100644 index 0000000..3567e1a --- /dev/null +++ b/src/main/java/com/xwolf/boot/controller/ApiController.java @@ -0,0 +1,66 @@ +package com.xwolf.boot.controller; + +import com.xwolf.boot.entity.User; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +/** + *

+ *

+ * + * @author xwolf + * @date 2017-02-26 20:15 + * @since V1.0.0 + */ +@RestController +@RequestMapping(value="/api") +public class ApiController { + static Map users = Collections.synchronizedMap(new HashMap()); + + @ApiOperation(value="获取用户列表", notes="") + @RequestMapping(value={""}, method=RequestMethod.GET) + public List getUserList() { + List r = new ArrayList(users.values()); + return r; + } + + @ApiOperation(value="创建用户", notes="根据User对象创建用户") + @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") + @RequestMapping(value="", method=RequestMethod.POST) + public String postUser(@RequestBody User user) { + users.put(user.getUid(), user); + return "success"; + } + + @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息") + @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer") + @RequestMapping(value="/{id}", method= RequestMethod.GET) + public User getUser(@PathVariable Integer id) { + return users.get(id); + } + + @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") + }) + @RequestMapping(value="/{id}", method=RequestMethod.PUT) + public String putUser(@PathVariable Integer id, @RequestBody User user) { + User u = users.get(id); + u.setUname(user.getUname()); + users.put(id, u); + return "success"; + } + + @ApiOperation(value="删除用户", notes="根据url的id来指定删除对象") + @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer") + @RequestMapping(value="/{id}", method=RequestMethod.DELETE) + public String deleteUser(@PathVariable Integer id) { + users.remove(id); + return "success"; + } +} diff --git a/src/main/java/com/xwolf/boot/controller/UserController.java b/src/main/java/com/xwolf/boot/controller/UserController.java index 62c6282..3db1de0 100644 --- a/src/main/java/com/xwolf/boot/controller/UserController.java +++ b/src/main/java/com/xwolf/boot/controller/UserController.java @@ -28,7 +28,7 @@ public class UserController { @Autowired private IUserService userService; - @RequestMapping("add") + @RequestMapping(value = "add",method = RequestMethod.POST) @ResponseBody public String insert(@RequestParam(value = "name",defaultValue = "")String name){ User user = new User(); @@ -38,7 +38,7 @@ public class UserController { return userService.insert(user); } - @RequestMapping("list/{start}/{size}") + @RequestMapping(value = "list/{start}/{size}",method = RequestMethod.POST) public PageInfo getUserList(@PathVariable("start")int start,@PathVariable("size")int size){ PageHelper.startPage(start,size); List list= userService.getList();