首页 > 开发 > Java > 正文

SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)

2024-07-13 10:09:35
字体:
来源:转载
供稿:网友

pom.xml增加依赖包

 <dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger2</artifactId>    <version>2.2.2</version>  </dependency>  <dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger-ui</artifactId>    <version>2.2.2</version>  </dependency>

编写swapper2配置类

package com.zyank;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;@Configuration@EnableSwagger2public class Swagger2 {  @Bean  public Docket createRestApi() {    return new Docket(DocumentationType.SWAGGER_2)        .apiInfo(apiInfo())        .select()        .apis(RequestHandlerSelectors.basePackage("com.zyank.web"))        .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("leo")        .version("1.0")        .build();  }}

Controller内使用

package com.zyank.web;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.zyank.domain.User;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiImplicitParams;import io.swagger.annotations.ApiOperation;@RestController@RequestMapping(value="/users")public class UserContrller {  static Map<Long, User> users=Collections.synchronizedMap(new HashMap<Long,User>());  @ApiOperation(value="获取用户列表",notes="")  @RequestMapping(value={""},method=RequestMethod.GET)  public List<User> getUserList(){    List<User> r=new ArrayList<User>(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.getId(), user);      return "success";    }    @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")    @ApiImplicitParam(name = "id", value = "用户ID", required = true, paramType="path", dataType = "Long")    @RequestMapping(value="/{id}", method=RequestMethod.GET)    public User getUser(@PathVariable Long id) {      return users.get(id);    }    @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息")    @ApiImplicitParams({        @ApiImplicitParam(name = "id", value = "用户ID", required = true, paramType="path", dataType = "Long"),        @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")    })    @RequestMapping(value="/{id}", method=RequestMethod.PUT)    public String putUser(@PathVariable Long id, @RequestBody User user) {      User u = users.get(id);      u.setName(user.getName());      u.setAge(user.getAge());      users.put(id, u);      return "success";    }    @ApiOperation(value="删除用户", notes="根据url的id来指定删除对象")    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long")    @RequestMapping(value="/{id}", method=RequestMethod.DELETE)    public String deleteUser(@PathVariable Long id) {      users.remove(id);      return "success";    }}

如果上诉代码没有写paramType = “path” 会提示类型转换String convert to Long错误。

以上所述是小编给大家介绍的SpringBoot集成Swagger2实现Restful(类型转换错误解决办法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表