.NET Core 1.1 WebApiにCSV出力フォーマッタを追加しようとしています。.netコアWebApiコンテンツネゴシエーション
WebAPIContrib.Coreパッケージ(https://github.com/damienbod/WebAPIContrib.Core/tree/master/src/WebApiContrib.Core.Formatter.Csv)をインストールしました。
私のスタートアップは、次のようになります。
var csvFormatterOptions = new CsvFormatterOptions();
services.AddMvcCore(options =>
{
options.OutputFormatters.Add(new CsvOutputFormatter(csvFormatterOptions));
options.FormatterMappings.SetMediaTypeMappingForFormat("csv", MediaTypeHeaderValue.Parse("text/csv"));
})
.AddJsonFormatters()
.AddJsonOptions(options => new SerializationHelper().Configure(options.SerializerSettings));
私のコントローラメソッドが完全に汎用的であり、この
[HttpGet("/api/export")]
[Produces("text/csv")]
public async Task<List<Data>> GetDataAsCsv()
{
return await _someService.GetData();
}
私の問題は、私は削除する場合は、属性を生成して送信しないということであるように見えます受け入れヘッダー私はまだcsvを取得します。彼はCSVを返信する方法をどのように知ることができますか?他の方法でもJSONが生成されますが、これはどうして私はちょうどこれがなぜなのか理解できないはずです。私はそれが問題を引き起こすのではないかと心配しています。
それはWEBAPIだので、私はAddMvcを使用したくないと私はカミソリを必要としません。 AddMvcCoreはまったく同じことをすることができます。追加したいサービスを指定するだけです。私の問題は、受け入れるヘッダーを指定して生成属性を削除しても、まだCSVが得られないということです。これは意味をなさないものです。 – Narcil
戻り値Ok(_someService.GetData())を追加しても何も変更されません。私はまだ生産属性と受け入れヘッダーなしのCSVを取得します。 – Narcil
フォーマッタを追加する順序を確認してください。また、JSONが返されたインスタンスの1つを表示してください – Nkosi