配置Web API以提供元数据

本文关键字:元数据 Web API 配置 | 更新日期: 2023-09-27 18:18:33

我是新手。. 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来提供元数据。或者我们需要从头开始

配置Web API以提供元数据

有一些以NuGet包的形式提供的项目可以帮助您做到这一点。所以不需要从头开始写

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

使用Asp。. Net WebApi帮助(https://www.nuget.org/packages/Microsoft.AspNet.WebApi.HelpPage/),您可以使用https://www.nuget.org/packages/leeksnet.AspNet.WebApi.Wadl/

添加WADL支持