内のステータス・コードとコンテンツ(swashbuckle)設定WEBAPI
まず、私のコントローラは、このように見えた:
public class ValuesController : ControllerBase
{
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(List<Value>))]
[HttpGet, System.Web.Mvc.Route("api/values/")]
public async Task<List<Value>> GetValues(HttpRequestMessage request)
{
using (DatabaseContext context = new DatabaseContext())
{
return await context.Values.Take(10).ToListAsync();
}
}
}
すべてうまく、スガッガーはjsonフォーマットの結果を示します。問題は、ステータスコードを設定できません(データベースエラーの場合はErr 500またはsththに設定できます)。私が読ん
Hereは、ステータスコードを設定するために、我々はHttpResponseMessage
だから私は変更私のコードを返す必要があります。ステータスコードが正しく設定されている、今
public class ValuesController : ControllerBase
{
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(HttpResponseMessage))]
[HttpGet, System.Web.Mvc.Route("api/values/")]
public async Task<HttpResponseMessage> GetValues(HttpRequestMessage request)
{
using (DatabaseContext context = new DatabaseContext())
{
var valuesToReturn = await context.Values.Take(10).ToListAsync();
return request.CreateResponse(HttpStatusCode.NotModified, valuesToReturn);
}
}
}
を、しかし闊歩しません結果を示します。
だから、私はこれは多分威張っ-問題であると思いました。
次のステップのchromeブーメラン・プラグインとAPIをテストすることだったが、同じ: ステータスコードは304ですが、ボディ(結果/コンテンツ)が空である:
HttpResponseMessageで本文を正しく設定する方法については、 また、戻り値がfalseの場合に、api-methodでステータスコードを設定する方法については、 List<Value>
?
これも問題でした。 –
@MatthiasBurgerこれは主な問題です;)私の答えに私のコメントを参照してください –
@its_time_for_weekendまあ両方が正しいです。 304であなたのソリューションをテストしただけで、うまくいかなかった。偉大な、今日何かを学んだ。 –