Web API 与 Swagger
Web API with Swagger
我是新手 to.NET /MVC/ Web API。我创建了一个 .Net Web API,它接受输入参数查询 OracleDatabase 和 returns JSON 中的结果。几乎遵循简单的 C# 代码。它工作 perfectly.My 控制器看起来像
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;
}
但是此 Web API 不能被客户端应用程序用作 Visual Studio 中的添加服务引用。所以我尝试使用 Swagger,我安装了它们。我正在获取 Swagger 页面,并能够通过提供查询输入来测试 API,它会产生 return 结果。
我不明白什么是终点 URL 我们将让客户端使用它们从 API 获取元数据。或者我是否做了任何进一步的配置来生成元数据。我是 .NET 的新手并且被困住了。
您将 URL 交给 swagger 文档作为文档。该文档为您提供 URL 以在您单击“尝试”按钮时也发送 JSON。
如果您使用的是 MVC,我不确定您所说的客户端是什么意思。
你有两个应用程序:
a) 前端 .NET 应用 AND
b) 与数据库对话的后端 .NET 应用程序?
两个 .NET 应用程序
查看
Get started with API Apps, ASP.NET, and Swagger in Azure App Service(与 Azure 无关)。
本教程描述了一种设置,其中有 .NET 应用程序,中间的应用程序导入 swagger 'file' 以使用与数据库对话的后端应用程序的 API。
根据我的经验,这种设置很浪费,但我不知道您的需求是什么。
一个 .NET 应用程序
如果您只有一个 MVC 应用程序,那么实际上就没有客户端。
这可能有用:
Create an ASP.NET MVC app with auth and SQL DB and deploy to Azure App Service
我是新手 to.NET /MVC/ Web API。我创建了一个 .Net Web API,它接受输入参数查询 OracleDatabase 和 returns JSON 中的结果。几乎遵循简单的 C# 代码。它工作 perfectly.My 控制器看起来像
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;
}
但是此 Web API 不能被客户端应用程序用作 Visual Studio 中的添加服务引用。所以我尝试使用 Swagger,我安装了它们。我正在获取 Swagger 页面,并能够通过提供查询输入来测试 API,它会产生 return 结果。
我不明白什么是终点 URL 我们将让客户端使用它们从 API 获取元数据。或者我是否做了任何进一步的配置来生成元数据。我是 .NET 的新手并且被困住了。
您将 URL 交给 swagger 文档作为文档。该文档为您提供 URL 以在您单击“尝试”按钮时也发送 JSON。
如果您使用的是 MVC,我不确定您所说的客户端是什么意思。
你有两个应用程序: a) 前端 .NET 应用 AND b) 与数据库对话的后端 .NET 应用程序?
两个 .NET 应用程序
查看 Get started with API Apps, ASP.NET, and Swagger in Azure App Service(与 Azure 无关)。
本教程描述了一种设置,其中有 .NET 应用程序,中间的应用程序导入 swagger 'file' 以使用与数据库对话的后端应用程序的 API。
根据我的经验,这种设置很浪费,但我不知道您的需求是什么。
一个 .NET 应用程序
如果您只有一个 MVC 应用程序,那么实际上就没有客户端。
这可能有用: Create an ASP.NET MVC app with auth and SQL DB and deploy to Azure App Service