私は、大規模なコレクションに適用するために、ソートおよびページネーション情報を送信するために使用するクラスを作成しました。要求を受け取り、入力
FromQuery
としてオブジェクトを受け取る.NET Core Web APIサービスがあります
。特定の命名規則(つまり、Microsoft Rest APIのガイドライン)
$orderby
などのパラメーター名の場合
、
$top
、
$skip
など、および
JsonProperty
を使用してクラスのプロパティに注釈を付けました
。
ただし、生成されたswagger docでは、これらは単にプロパティ名そのものとして表示されるだけで、これは私のプロパティの名前が
Take
の場合に問題ですたとえば、リクエストパラメータは
$top
である必要があります
。 APIの利用者に混乱を引き起こさないために、生成されたドキュメントを一致させたいと思います。私が読んだものはすべて、これが機能するはずであるように思われるので、なぜそれが私に合わないのか困惑しています。
これは、
Newtonsoft.Json.JsonPropertyAttribute
を使用した注釈付きの私のクラスです
[JsonObject]
public class QueryParams {
[JsonProperty( "$orderBy" )]
public string OrderBy { get; set; }
[JsonProperty( "$skip" )]
public int? Skip { get; set; }
[JsonProperty( "$top" )]
public int? Take { get; set; }
[JsonProperty( "$maxpagesize" )]
public int? MaxPageSize { get; set; }
[JsonProperty( "$count" )]
public bool? IncludeCount { get; set; }
}
そして、たとえば私のWeb APIアクションメソッドは次のようになります
[HttpGet( "type/{type}" )]
public async Task<IActionResult> GetByType(
string type,
[FromQuery]QueryParams parameters )
{
/* ... */
}
MapType
を使用するなど、いくつかのことを試しましたで述べたように
特定のタイプのスキーマをオーバーライドする しかし、運がありません。これに関してだれでも提供できる洞察に感謝します。
回答 1 件
関連記事
- JavaScriptで生成された選択オプションでPHPエコーオプションを使用する
- useStateフックを使用して値を設定できますか?なぜこれが起こるのですか?
- 数式を使用してExcelで値を検索する
- numpy配列を使用してリストのn番目の値を出力する
- forループを使用したR関数の戻り値
- WHERE条件で連想価を使用してABAPSQLからCDSを使用するにはどうすればよいですか?
- onChangeを使用せずにReactでの値を設定するにはどうすればよいですか?
- CSS、ajax、jQueryを使用してdivで生成されたテーブルに新しい行を追加します
- BigQueryを使用して各レコードグループの最後の3つのレコードの平均値を取得するにはどうすればよいですか?
- Oracle:updatesqlステートメントで変数を使用してSQLに値を設定する方法
このGitHubの問題によると、
JsonSerializer
GETリクエストのクラスへのバインドには使用されません。代わりに、モデルバインディングをカスタマイズする必要があります。GH問題の議論を正しく理解していれば、次のように動作するはずです。