私はASP.NET Web APIメソッドを作成しています。 Webメソッドは、Oracle Databaseの問合せに使用される4つの入力パラメータを受け入れ、JSONで結果を戻します。入力パラメータはstring型とDateTime型です。 API呼び出しは?id=123&date_in=01-JAN-16
のようになります。コントローラでは、API呼び出しでIDがnullであるか、日付形式がdd-MMM-yy以外のもので、適切なエラーメッセージを返すなど、検証エラーを処理する必要があります。処理エラーASP.NET Web API
public class DataController : ApiController
{
[HttpGet]
public HttpResponseMessage Getdetails(string id,DateTime date_in)
{
List<OracleParameter> prms = new List<OracleParameter>();
prms.Add(new OracleParameter("id", OracleDbType.Varchar2, id, ParameterDirection.Input));
prms.Add(new OracleParameter("date_in", OracleDbType.Date, date_in, ParameterDirection.Input));
string connStr = ConfigurationManager.ConnectionStrings["DtConnection"].ConnectionString;
using (OracleConnection dbconn = new OracleConnection(connStr))
{
DataSet userDataset = new DataSet();
var strQuery = "SELECT * from SAMPLE where id = :id and date_in = :date_in ";
var returnObject = new { data = new OracleDataTableJsonResponse(connStr, strQuery, prms.ToArray()) };
var response = Request.CreateResponse(HttpStatusCode.OK, returnObject, MediaTypeHeaderValue.Parse("application/json"));
ContentDispositionHeaderValue contentDisposition = null;
if (ContentDispositionHeaderValue.TryParse("inline; filename=TGSData.json", out contentDisposition))
{
response.Content.Headers.ContentDisposition = contentDisposition;
}
return response;
これらの例外を処理するために別のクラスを作成する必要がありますか?回答をどのように返すべきですか?
あなたはIDにnullチェックを防止するために型指定されたパラメータを使用することができます?彼らはのような何かをしようとした場合Getdetails(int型のID、日付と時刻のdate_inを)、これはASP.NETからエラーが返されますID =フラミンゴ&date_in = 01-JAN-16。エラー処理に関しては、シンプルな方法の1つは、試行/キャッチでSendAsyncを呼び出し、例外がスローされた場合に一貫したエラーメッセージを返すDelegatingHandlerを作成することです。 –