在ASP.NET Core 2.2中创建API路由的解决方法如下:
首先,在Startup.cs文件中的ConfigureServices方法中添加以下代码来配置API路由:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddRouting(options => options.LowercaseUrls = true);
}
然后,在Startup.cs文件的Configure方法中添加以下代码来配置路由模板和默认路由:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
接下来,创建一个控制器来处理API请求。在Controllers文件夹中创建一个新的类,例如ValuesController.cs,代码如下:
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
public ActionResult Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public void Post([FromBody] string value)
{
}
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
上述代码示例中,我们使用了[Route]和[HttpGet]等属性来定义API的路由和HTTP方法。
最后,启动应用程序,并在浏览器中访问API路由。例如,如果应用程序运行在本地主机上的默认端口号5000,则可以使用以下URL来访问API:
这些URL将分别调用ValuesController中的相应方法,并返回响应的数据。
希望这个解决方法能帮助到您!