2017-07-17 9 views
0

SwaggerとC#に問題があります。私は文字列のリストを受け取るGET metodを持っており、私はSwaggerでそれを証明します。 Swaggerでアプリケーションを実行すると、 "Lista"というパラメータがqueryの代わりにparamType = bodyになり、デバッガはこのフィールドにnullを受け取ります。どうしたらいいですか?おかげSwagger - C#の文字列のリスト

闊歩出力:

Parameter Value Description Parameter Type  Data Type 
fecha  (required) Fecha   query   date-time 
lista     Lista   body   array[string] 

C#コード:

/// <summary> 
/// Recover some data 
/// </summary> 
/// <param name="fecha">Fecha</param> 
/// <param name="lista">Lista</param> 
/// <returns>Information</returns> 
[Route("v1/tareas")] 
[SwaggerTags("Planificador")] 
[SwaggerResponse(HttpStatusCode.OK, typeof(Tarea))] 
[SwaggerResponse(HttpStatusCode.NotFound, typeof(string))] 
//[BearerAuthorizeAttribute] 
[HttpGet] 
public HttpResponseMessage GetTarea(DateTime fecha, List<string> lista = null) 
{...} 
+0

[FromBody]属性のボディからパラメータを取得するか、ルーティングにパラメータを追加する必要があります。今私はあなたのDateTimeでも動作するかどうかはわかりません。 –

+0

フィールドDateTimeは正常に動作し、私はいつも日付を受け取ります。問題はリストにあります。 '{ "メッセージ": "エラー"、 "ExceptionMessage":「オプションの私は... – Aw3same

+0

が、私はこのエラーが発生した –

答えて

1

あなたは[FromBody]属性を追加する必要があります。

public HttpResponseMessage GetTarea(DateTime fecha, [FromBody] List<string> lista) 

をし、デフォルトを使用する必要はありませんとにかくnullになるものを渡さないと、参照型です。