解決Spring boot中使用Gson,Swagger2 api-docs無法正常顯示json問題
由於專案中存在自定義型別,而Jackson
的序列化與反序列化又不太會玩,轉而使用Gson
,由於有生成Restful API文件的需求,使用Swagger2,最終api-docs
無法正常顯示(使用Jackson
一切正常):
{
"value": "{\"swagger\":\"2.0\",\"info\":{\"description\":\"this is restful api document\",\"version\":\"1.0.0\",\"title\":\"MyApp API文件\",\"contact\":{\"name\":\"xxx\",\"url\":\"http://xxxx.com\",\"email\":\" [email protected]\"}},\"host\":\"localhost:8080\",\"basePath\":\"/\",\"tags\":[{\"name\":\"login-controller\",\"description\":\"Login Controller\"},{\"name\":\"user-controller\",\"description\":\"User Controller\"}],\"paths\"
......
同時也導致/swagger-ui.html
無法正常顯示。
原因:Gson
的序列化問題
解決方法:自定義Gson
序列化
//***注意***:這裡的`Json `是`springfox.documentation.spring.web.json.Json`包下的類
class springfoxJsonToGsonAdapter : JsonSerializer<Json> {
override fun serialize(json: Json, type: Type, jsc: JsonSerializationContext): JsonElement
= JsonParser().parse(json.value())
}
接下來註冊到GsonHttpMessageConverter
//***注意***:`Json`同上,為`springfox.documentation.spring.web.json.Json`包下的類
class IGsonHttpMessageConverter : GsonHttpMessageConverter() {
init {
//自定義Gson介面卡
super.setGson(GsonBuilder()
.registerTypeAdapter(Json::class.java, springfoxJsonToGsonAdapter())
.create())
}
}
接下來訪問http://localhost:8080/v2/api-docs
,得到正常結果
{
"swagger": "2.0",
"info": {
"description": "this is restful api document",
"version": "1.0.0",
"title": "MyApp API文件",
"contact": {
"name": "userName",
"url": "http://xxxuri.com",
"email": "[email protected]"
}
},
"host": "localhost:8080",
"basePath": "/",
"tags": [{
"name": "login-controller",
"description": "Login Controller"
}, {
"name": "user-controller",
"description": "User Controller"
}],
"paths": {
"/login/verify/{userId}": {
"get": {
"tags": [
"login-controller"
],
"summary": "askGroupsAndRoles",
"operationId": "askGroupsAndRolesUsingGET",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [{
"name": "userId",
"in": "path",
"description": "userId",
"required": true,
"type": "string"
}],
"responses": {
"200": {
"description": "OK"
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not Found"
}
}
}
}
}
Swagger UI 也正常顯示。
問題解決。
相關推薦
解決Spring boot中使用Gson,Swagger2 api-docs無法正常顯示json問題
由於專案中存在自定義型別,而Jackson的序列化與反序列化又不太會玩,轉而使用Gson,由於有生成Restful API文件的需求,使用Swagger2,最終api-docs無法正常顯示(使用Jack
springboot全域性異常處理(包含404錯誤處理) 一:解決spring boot中rest介面404,500等錯誤返回統一的json格式(備用地址) 二:SpringBoot入門——區域性與全域性的異常處理(備用地址)
個人整理參考文件: 一:解決spring boot中rest介面404,500等錯誤返回統一的json格式(備用地址) 二:SpringBoot入門——區域性與全域性的異常處理(備用地址) 三:SpringBoot全域性異常處理(備用地址) 四:sprin
解決spring boot中rest介面404,500等錯誤返回統一的json格式
在開發rest介面時,我們往往會定義統一的返回格式,列如: { "status": true, "code": 200, "message": null, "data": [ { "id": "101", "name": "jack" },
Spring-boot中@ConfigurationProperties,@Value,@PropertySource
1.利用@ConfigurationProperties獲取配置的值,@ConfigurationProperties是springboot提供的基於安全型別的配置放置。 application.properties spring.redis.host=127.0.0.1
記錄初學Spring boot中使用GraphQL編寫API的幾種方式
tor resolv dev star ase tps food env cut Spring boot+graphql 一、使用graphql-java-tools方式 <dependency> <groupId>com.graphql-j
解決spring boot swagger ui使用 nginx 部署後無法使用問題
spring boot 使用 swagger ui做介面文件, 本地測試沒有問題,但是部署到linux上時, 訪問域名,就會得到如下結果: 解決辦法: 修改nginx配置檔案: nginx/conf.d/default.conf 原檔案: server {
tomcat啟動後,http://localhost:8080無法正常顯示
問題描述:在java中可以成功啟動tomcat,且正常顯示專案內容,但在網頁中輸入http://localhost:8080無法正常顯示。 原因 eclipse將tomcat的專案釋出目錄重定向了,導致無法正常訪問。同時在tomcat安裝目錄下的we
3.Spring Boot中使用Swagger2構建強大的RESTful API文檔
pack 效果 type 現象 業務邏輯 blank depend imp any 原文:http://www.jianshu.com/p/8033ef83a8ed 由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的用戶會用來構
Spring Boot中使用Swagger2構建強大的RESTful API文檔
TP app 接口 ear tro 參數 stc 業務邏輯 schema 由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的用戶會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這
Spring Boot中使用Swagger2構建強大的RESTful API文件【轉】
由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的使用者會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層來同時服務於多個移動端或者Web前端。
Spring Boot 中使用 Swagger2 構建 RESTFUL API 文件
由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的使用者會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層來同時服務於多個移動端或者Web前端。
Spring Boot中使用Swagger2構建強大的RESTful API文件
由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的使用者會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層來同時服務於多個移動端或者Web前端。 這樣一來,我們
Swagger2 在spring boot中的運用- API Docs在spring boot中詳細配置生成及各個平臺介面網路請求程式碼生成Swagger-codegen-cli運用
好久沒有寫學習部落格了。在最近的工作中,學習到了一些比較好的工具。可以提高前後臺工作人員,測試人員的工作效率。甚至可以給產品提供相關直觀的參考。也利於版本迭代api的系統管理,現部落格記錄下來,有什麼不足之處請各位大牛指正!有很多因素促成了Swagger在構建RESTful
Spring boot中引數注入,@Value失效以及解決方案
問題 專案中我們都要要儘量避免將引數直接寫程序序裡,這樣一旦需要需要修改配置,我們可以只需要在配置檔案裡做修改,而不必在程式裡找,這樣可以避免很多錯誤,個人專案可能不會注意這一點,但是需要上線釋出的專案,Configure配置檔案就顯得非常重要!現在很多公司其
只需一步,在Spring Boot中統一Restful API返回值格式與統一處理異常
統一返回值 在前後端分離大行其道的今天,有一個統一的返回值格式不僅能使我們的介面看起來更漂亮,而且還可以使前端可以統一處理很多東西
spring-boot實戰【06】【轉】:Spring Boot中使用Swagger2
des values 產生 service sof div 解決 整合 data 由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的用戶會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的
Spring Boot 中配置定時任務,實現多線程操作
pre log pri http code china 部分 多線程操作 .net 參考的代碼部分 https://git.oschina.net/jokerForTao/spring_boot_schedule 一目了然!Spring Boot 中配置定時任務,實現
關於Spring boot中讀取屬性配置文件出現中文亂碼的問題的解決(針對application.properties)
HA inf encoding 屬性 文件中 ide for 出現 spring 兩種方法: 方法一:在配置文件中設置中文編碼: banner.charset=utf-8server.tomcat.uri-encoding=UTF-8spring.http.encoding
使用Logstash同步數據至Elasticsearch,Spring Boot中集成Elasticsearch實現搜索
開啟 stash auto -a zab rest driver tid list 安裝logstash、同步數據至ElasticSearch 為什麽使用logstash來同步,CSDN上有一篇文章簡要的分析了以下幾種同步工具的優缺點:https://blog.csdn.
記錄Spring Boot大坑一個,在bean中如果有@Test單元測試,不會註入成功
記錄 one except frame oot beans org init def 記錄Spring Boot大坑一個,在bean中如果有@Test單元測試,不會註入成功 記錄Spring Boot大坑一個,在bean中如果有@Test單元測試,不會註入成功 記錄Sp