[解決済み] ASP.Net Web API の GET に複数のパラメータを渡すにはどうすればよいですか?
質問
私は.Net MVC4 Web APIを使用して、(うまくいけば)RESTfulなAPIを実装しています。 私はシステムにいくつかのパラメータを渡す必要があり、それが何らかのアクションを実行し、結果としてオブジェクトのリストを返すようにする必要があります。 具体的には、私は2つの日付を渡し、その間にあるレコードを返します。 私はまた、後続の呼び出しがシステム内で再処理されないように、返されたレコードを追跡しています。
私はいくつかのアプローチを検討しました。
-
params を 1 つの JSON 文字列にシリアライズして、API でそれをバラバラにする。 http://forums.asp.net/t/1807316.aspx/1
-
クエリ文字列でパラメータを渡します。
restful apiに複数のクエリパラメータを渡すための最良の方法は何ですか? -
ルートでパラメータを定義する api/controller/date1/date2
-
本来はパラメータでオブジェクトを渡すことができるPOSTを使用します。
-
Web APIが(現在)サポートしているので、ODATAを研究している。 まだあまりやっていないので、あまり詳しくはないです。
適切な REST のプラクティスは、データが引き出されるとき、GET を使用すべきであると示しているようです。 しかし、GETはnullipotent(副作用を生じない)であるべきで、私はAPIシステムでレコードをマークしているので、私の特定の実装がそれに違反しているかどうか、それゆえ私は副作用を生じています。
それはまた、可変パラメータをサポートするという問題にもつながりました。 入力パラメータリストが変更された場合、それが頻繁に起こるのであれば、選択肢3のルートを再定義しなければならないのは面倒でしょう。 また、パラメータが実行時に定義されている場合はどうなるのでしょうか...。
いずれにせよ、私の特定の実装のために、どの選択肢が(もしあれば)最善と思われますか?
どのように解決するのですか?
このレコードマーキングは何を意味するのでしょうか?もしこれがログを取るためだけに使われるのであれば、このリソースに対するすべてのクエリをログに取りたいので、私なら GET を使い、すべてのキャッシュを無効にします。レコードマーキングが他の目的を持っている場合、POSTを使用するのが良いでしょう。ユーザーは、自分の行動がシステムに影響を与えること、そしてPOSTメソッドが警告であることを知る必要があります。
関連
-
ASP.NET CoreでCAPの取引詳細を自動で有効にする
-
NET 6 の今後の新機能 暗黙の名前空間参照
-
[解決済み] crossdomain.xmlファイルとは何ですか?
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] URLクエリパラメータを含むHTTP POST -- 良いアイデアかどうか?
-
[解決済み] ASP.NET Web APIに整数の配列を渡しますか?
-
[解決済み] ASP.NET Web APIでエラーを返すためのベストプラクティス
-
[解決済み] 既存のASP.NET MVC 4 WebアプリケーションのプロジェクトにWeb APIを追加するにはどうすればよいですか?
-
[解決済み】ASP.NET Web APIでコントローラからバイナリファイルを返す。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
ASP.NET Core Dependency Injectionフレームワークの活用
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
ajaxでポップアップアラートボックス
-
一時的なクラスを生成できない(result=1)、問題の解決方法
-
[解決済み] System.Data.Entity.Internal.AppConfig' の型イニシャライザーで例外が発生しました。
-
[解決済み] ASP.NETでConsole.WriteLineはどこに行くのですか?
-
[解決済み] ASP.NET MVCのAjaxポストでantiforgerytokenを含める。
-
[解決済み] ASP.NETの一時ファイルのクリーンアップ
-
[解決済み] フレームワークのランタイムターゲットが見つからない .NETCoreApp=v1 互換ランタイムの1つと互換性がある