在ASP.net、C#、.netfreamwork環境下:
使用swaggerui時,如果入參格式為 List<string>,List<int> 等形式,后台經常無法接收到參數,接收到的值為null,或count為0:
一、HttpGet示例:
后台示例:
1.經測試,后台List<string>,List<int>格式的入參,HttpGet必須加參數屬性 [FromUri]
http://192.168.0.101:9085/api/History/GetDaySignalSummary?summaryList=1&summaryList=2&startTime=2020-03-30&stationId=11010801-6561-41cb-b131-e812f09daab6
/// <summary> /// 獲取歷史數據合計 /// </summary> /// <param name="summaryList"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="stationId"></param> /// <returns></returns> [ActionsGroup("統計數據獲取")] [HttpGet] public JObject GetSignalSummary([FromUri]List<int> summaryList, string startTime, string endTime, string stationId) { JObject result = new JObject(); try { RedisHelper redisStruct = new RedisHelper((int)EnumUserRedisNum.Struct); cfg_station station= redisStruct.HashGet<cfg_station>(ConstValue.Area, stationId); history_signalsummaryBLL summaryBLL = new history_signalsummaryBLL(); JObject temp = summaryBLL.GetSignalSummary(station.keycode, summaryList, startTime, endTime); if (temp == null) { result.Add("Code", (int)EnumExecStatus.失敗); result.Add("Error", "未獲取到歷史數據"); return result; } result.Add("Code", (int)EnumExecStatus.成功); result.Add("Result", temp); } catch (Exception ex) { LogEvent.LogInfo.Fatal(ex.ToString()); result.Add("Code", (int)EnumExecStatus.失敗); result.Add("Error", ex.ToString()); } return result; }
SwaggerUI調用示例:
二、HttpPost示例:
1.經測試,后台List<string>,List<int>格式的入參,
2.參數格式填寫錯誤:需要填寫成如下格式:
["1","2","3"]