c# - 如何在 cli 应用程序上调用控制器
问题描述
我有一个控制台应用程序(NET Core 2.2),这个应用程序的主要功能是在 cli 中。但是我想在它上面调用一个rest api端点(以获取有关此应用程序的一些信息)。现在我在 Program.cs 中实现代码,添加一个 Startup.cs 和一个控制器。但我无法通过 Postman 联系到我的控制器。什么不见了?
程序.cs:
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
// further logick...
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("http://0.0.0.0:5002");
启动.cs:
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddBusinessComponents();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
}
}
控制器:
[Produces("application/json")]
[Route("cli/v1/dataPicker/info")]
public class InfoController : Controller
{
private IInfoBusinessComponent BusinessComponent { get; }
[Microsoft.AspNetCore.Mvc.HttpGet]
public async Task<IActionResult> GetInfoAsync()
{
Statuses statuses = null;
try
{
statuses = await BusinessComponent.GetInfo();
}
catch (System.Exception ex)
{
return BadRequest($"Exception occurred while trying to get health informations.");
}
return Ok(statuses);
}
}
解决方案
尝试:
[Route("api/[controller]")]
[ApiController]
public class InfoController : Controller
{
[HttpGet("GetInfo")]
public async Task<IActionResult> GetInfoAsync()
{
Statuses statuses = null;
try
{
statuses = await BusinessComponent.GetInfo();
}
catch (System.Exception ex)
{
return BadRequest($"Exception occurred while trying to get health informations.");
}
return Ok(statuses);
}
}
并在浏览器中调用它,如:
http://localhost:5002/api/Info/GetInfo
推荐阅读
- node.js - Mongoose 无法连接到 Mlab
- opengl - OpenGL 无绑定纹理和无缝立方体贴图过滤
- solace - 是否可以在 Solace 中检测到端点的订阅者的存在
- iframe - 使用 javascript 更改输入类型,无处不在
- python - 将值从 panda 数据帧传递到 http 请求
- python - 如何安装“pymprog”?蟒蛇 3.7
- webpack - 如何使用 Webpack 的 http-proxy-middleware 将 _some_ 请求代理到“/”?
- java - 构建对象列表时仅检索某些属性
- python - 如何从输出列表中删除名称和数据类型?
- function - 在不通过引用传递的情况下更新父范围变量