前端時間在webapi項目使用swagger來提供接口文檔及測試工具,按網上方法(http://wmpratt.com/swagger-and-asp-net-web-api-part-1)配置好之后在瀏覽器控制台出現"Cannot read property 'parameters' of null"錯誤。
后面發現問題出在//localhost:5645/swagger/docs/v1這個JSON資源上面,序列化出來的JSON,包含了為NULL的字段,導致swagger-ui-min-js出現異常。
進一步分析是因為我項目使用的newtonsoft.json這個庫的配置導致,應該忽略為NULL的字段,如下:
//這里使用自定義日期格式 var jsonFormatter = new JsonMediaTypeFormatter(); var settings = jsonFormatter.SerializerSettings; var timeConverter= new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; settings.Converters.Add(timeConverter); settings.NullValueHandling = NullValueHandling.Ignore; config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter))