带有Swagger的Web API

trx*_*trx 3 c# asp.net asp.net-web-api swagger

我是.NET / MVC / Web API的新手。我创建了一个.Net Web API,该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;
        }
Run Code Online (Sandbox Code Playgroud)

但是,客户端应用程序不能将此Web API用作Visual Studio中的添加服务引用。所以我尝试使用Swagger,我安装了它们。我得到了Swagger Page,并能够通过提供查询输入来测试API,并且它确实返回结果。 在此处输入图片说明

我不明白我们将为客户端提供的从URL获取元数据的终点URL是什么。还是我需要做任何进一步的配置来生成元数据。我是.NET的新手,并且对此一无所知。

tym*_*tam 5

如果您使用的是MVC,我不确定客户端是什么意思。

您是否有两个应用程序:a)前端.NET应用程序 b)与数据库对话的后端.NET应用程序?

两个.NET应用

查看 Azure App Service中的API Apps,ASP.NET和Swagger入门(与Azure无关)。

本教程描述了一种设置,其中存在.NET应用程序,中间的应用程序导入一个庞大的“文件”以使用与数据库对话的后端应用程序的API。 在此处输入图片说明

以我的经验,这种设置很浪费,但我不知道您的需求是什么。

一个.NET应用

如果您只有一个MVC应用程序,那么实际上就没有客户端。

这可能很有用: 使用auth和SQL DB创建ASP.NET MVC应用并部署到Azure应用服务