2016-11-17 8 views
0

私はto.NET/MVC/Web APIの新機能です。入力パラメータを受け入れる.Net Web APIを作成しました。OracleDatabaseを照会し、JSONで結果を返します。シンプルなC#コードに従ってください。私のコントローラは次のようになりますメタデータを提供するようにWeb APIを設定する

public class DataController : ApiController 
{ 
    [HttpGet] 
    public HttpResponseMessage Getdetails(string ROOM, DateTime DOB_GT) 
    { 
      List<OracleParameter> prms = new List<OracleParameter>(); 
      prms.Add(new OracleParameter("ROOM", OracleDbType.Varchar2, ROOM, ParameterDirection.Input)); 
      prms.Add(new OracleParameter("DOB_GT", OracleDbType.Date, DOB_GT, ParameterDirection.Input)); 
      string connStr = ConfigurationManager.ConnectionStrings["SDataBaseConnection"].ConnectionString; 
      using (OracleConnection dbconn = new OracleConnection(connStr)) 
      { 
       DataSet userDataset = new DataSet(); 
       var strQuery = "SELECT * from SAMPLE_RESULTS_VW where ROOM = :ROOM and DOB > :DOB_GT "; 
       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; 
      } 

これは完全に動作します。これで、クライアントアプリケーションはメタデータを要求しています。したがって、彼らはサービスからメタデータを引き出すことができます。メタデータを提供するために既存のAPIを設定できるかどうかはわかりません。または、私たちは最初から何かをしなければならないでしょう

答えて

4

これを行うのに役立つNuGetパッケージの形でいくつかのプロジェクトがあります。だから最初から書き込む必要はありません。

スワッガーを追加して、APIのメタデータを提供できます。あなたはhttps://www.nuget.org/packages/leeksnet.AspNet.WebApi.Wadl/

を使用してWADLのサポートを追加することができますAsp.NetウェブのAPI helppagesを使用 https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swaggerhttps://github.com/domaindrivendev/Swashbuckle

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.HelpPage/)を参照してください。

関連する問題