Swagger是一個規範和完整的框架,用於生成、描述、調用和可視化RESTful風格的Web服務。簡單來講,Swagger是一個功能強大的接口管理工具,而且提供了多種編程語言的先後端分離解決方案。java
springfox-swagger 2.9.2 內置的swagger-models1.5.20 會引發Long類型格式轉換異常,報錯以下:spring
這段報錯的意思是,在將空串"",轉換爲Long類型時出現異常。編程
項目中不少地方都使用了swagger註解,但對Long類型添加註解時未指定example值,好比:後端
@ApiModelProperty(value = "鏈碼id") private Long id;
進入AbstractSerializableParameter類查看 getExample()方法api
復現異常:框架
public static void main(String[] args) { long l = Long.valueOf(""); System.out.println(l); }
報錯以下:前後端分離
Exception in thread "main" java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Long.parseLong(Long.java:601) at java.lang.Long.valueOf(Long.java:803) at com.lianxin.werm.api.resource.room.RoomForm.main(RoomForm.java:124)
對Long類型上的參數或屬性上使用swagger註解時,指定example的值爲數值型,好比:編程語言
@ApiModelProperty(value = "鏈碼id",example="1") private Long id;
將swagger中的swagger-models1.5.20 版本升到1.5.22工具
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <!-- 排除自帶的1.5.20版本--> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions></dependency> <!-- 使用1.5.22--> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.22</version> </dependency>
新版對這個問題進行了修復,查看getExample()
若是example="" ,直接返回spa