現在、ASP.Net WebAPI テクノロジを使用して Restful API を作成しています。WebAPI に関して 2 つの質問があります
私は以下を行っていました:
Controller クラスの以下のメソッドを作成します。
public HttpResponseMessage PostOrderData(OrderParam OrderInfo)
- パラメータ OrderInfo に基づいて、SQL Server にクエリを実行し、注文のリストを取得します。
- コレクション オブジェクトを使用して Response.Content を設定します。
List<Orders> ordList = new List<Orders>(); //filled the ordList from SQL query result var response = Request.CreateResponse<List<Orders>>(HttpStatusCode.OK, ordList);
- クライアント側では、
OrderParam ordparam = new OrderParam(); response = client.PostAsJsonAsync("api/order", ordparam).Result; if (response.IsSuccessStatusCode) { List<Orders> mydata = response.Content.ReadAsAsync<List<Orders>>().Result; }
質問: データをサーバーに投稿してデータを取得しても問題ありませんか。つまり、Get の代わりに Post データを使用するのは正しいですか? アプローチにデメリットはありますか?(1 つの欠点は、ブラウザーから直接クエリを実行できないことです) ここでは Post を使用しました。これは、パラメーター "OrderParam" が将来拡張される可能性があり、それによって URL の長さが増加することによる問題が発生する可能性があるためです。
2 番目の質問は次のとおりです。パラメーターとオブジェクトを返すためにクラスを使用しました。つまり、OrderParam と Orders です。この Web API のコンシューマー (クライアント) はさまざまな顧客であり、.Net (C#) または Jquery/JS を介して API を使用します。では、OrderParam および Orders クラスの定義を含むこのクラス ファイルを各クライアントに手動で渡す必要があるのでしょうか。上記のクラスに変更があるたびにクライアントに送信しますか?
前もってありがとう
シャー