软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)

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

作者:那小子很拽  发布时间:2022-11-05 23:12:26 

标签:类型转换错误,spring,boot,swagger2

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
@EnableSwagger2
public 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(类型转换错误解决办法)网站的支持!

来源:http://blog.csdn.net/haoqi9999/article/details/74421483

0
投稿

猜你喜欢

  • Android EditText的光标的显示和隐藏一、java代码1.编辑框的光标 显示的方法:editText.setCursorVisi
  • 目录查查询指定列查询所有列条件查询子查询根据业务逻辑添加条件连接查询增新增一条批量新增删改主要演示DynamicSql风格代码如何使用,基本
  • 前言:现在的手机品牌和型号越来越多,导致我们平时写布局的时候会在个不同的移动设备上显示的效果不同,比如我们的设计稿一个View的大小是300
  • 一、准备工作1、你需要android手机应用开发基础2、科大讯飞语音识别SDK android版3、科大讯飞语音识别开发API文档4、and
  • 深入理解IOC思想spring本质就在于将对象全部交由给spring容器创建和管理,由容器控制对象的整个生命周期、核心就是IOC控制反转和A
  • 一般来说课本上的数据结构包括数组、单链表、堆栈、树、图。我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用
  • 引言在前面的内容中,我们先是一一介绍了Collection集合中都有哪些种类的集合,并且详细地讲解了List集合中的相关知识,那么今天我们来
  • Spring AOP后置通知修改响应httpstatus1.定义Aspect/** * 响应体切面 * 后置通知修改httpstatus *
  • 前言在网上看到一个不错的简易版正则匹配和替换的工具,现在补充进来,感觉还不错,效果如下(输入验证中文汉字的正则表达式)在线下载文章导读正则表
  • 准备工作HALCON示例程序的描述部分一直是英文的,看起来很不方便。我决定汉化一下HALCON示例程序的描述,准备工作如下:拿到HALCON
  • 这篇文章主要介绍了Spring Cloud Hystrix异常处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
  • 本文实例讲述了.NET/C#实现识别用户访问设备的方法。分享给大家供大家参考,具体如下:一、需求需要获取到用户访问网站时使用的设备,根据不同
  • Android通过访问网页查看网页源码1.添加网络权限<!--访问网络的权限--> <uses-permission an
  • 有了上一节中得到的正则表达式,那么就可以用来构造 NFA 了。NFA 可以很容易的从正则表达式转换而来,也有助于理解正则表达式表示的模式。一
  • 前言:最近在工程中需要用到截取RotatedRect中的图形,保存为Mat做后续处理。发现opencv文档中没有这个api,最开始想到的方案
  • 二、简介多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力,但频繁的创建线程的开
  • 方法1:使用内部APIs该方法和其他所有内部没有向外正式公布的APIs一样存在它自己的风险。原理是通过获得WindowManager的一个实
  • C#程序自删除核心实现方法就是调用 cmd 传入命令行,等待几秒之后删除文件;应用程序在运行时,是不能将 exe 文件进行删除的。但是可以将
  • 写在前面并发编程一直都存在,只不过过去的很长时间里,比较难以实现,随着互联网的发展,人口红利的释放,更加友好的支持并发编程已经成了主流编程语
  • 一、算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要
手机版 软件编程 asp之家 www.aspxhome.com