【问题标题】:Configure Web API to provide metadata配置 Web API 以提供元数据
【发布时间】:2016-11-18 03:45:10
【问题描述】:

我是 .NET /MVC/ Web API 的新手。我创建了一个 .Net Web API,它接受输入参数查询 OracleDatabase 并以 JSON 格式返回结果。几乎遵循简单的 C# 代码。我的控制器看起来像

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 来提供元数据。否则我们将不得不从头开始做 smoeth

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-web-api


    【解决方案1】:

    有一些以 NuGet 包形式提供的项目可以帮助您执行此操作。所以不需要从头开始写。

    您可以添加 Swagger 以提供您的 api 的元数据。见https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swaggerhttps://github.com/domaindrivendev/Swashbuckle

    使用 Asp.Net Web Api 帮助页面 (https://www.nuget.org/packages/Microsoft.AspNet.WebApi.HelpPage/),您可以使用 https://www.nuget.org/packages/leeksnet.AspNet.WebApi.Wadl/ 添加 WADL 支持

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2019-02-17
      • 2020-04-27
      相关资源
      最近更新 更多