每天学习一点点,成功增加一大步

.Net Core 笔记:webapi 路由

C# zhanghui 664℃

现如今任何成熟的开发框架都有它自己的路由模块,所以想上手一个框架语言就先要了解它的路由是如何使用的(包括如何在路由中向指定的方法体输入要指定的参数),要是搞不清楚这些东西要玩也不好玩了。

下面记录一下 .Net Code 的 webApi 的默认路由规则。

简单的 GET 路由

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using NetCode.Models.User;
namespace NetCode.Controllers.Users
{
/// <summary>
/// 如果规则是 [Route("api/[controller]")]
/// 那么请求的路径则是: /api/MobileAuth
/// 
/// 如果规则是 [Route("api/Users/[controller]")]
/// 那么请求的路径则是: /api/Users/MobileAuth
/// </summary>
[Route("api/Users/[controller]")]
public class MobileAuthController: Controller
{
/// <summary>
/// 不带参数值的情况
/// /api/Users/MobileAuth
/// </summary>
/// <returns>
/// {
// "id": 0,
// "roleId": 0,
// "roleName": null,
// "roleEnName": null,
// "mobile": 0,
// "nickName": null,
// "createTime": "0001-01-01T00:00:00",
// "isExists": false
// }
/// </returns>
[HttpGet]
public JsonResult Handler() {
UserInfoModel uim = new UserInfoModel();
return Json(uim);
}
/// <summary>
/// 带参数值的情况,就目前的练习发现而言,
/// GET 方式只能带一个参数值,之余多个参数值的情况没有调试出来
/// /api/Users/MobileAuth/111
/// </summary>
/// <param name="id"></param>
/// <returns>
/// {
// "id": 111,
// "roleId": 0,
// "roleName": null,
// "roleEnName": null,
// "mobile": 0,
// "nickName": null,
// "createTime": "0001-01-01T00:00:00",
// "isExists": false
// }
/// </returns>
[HttpGet("{id}")]
public JsonResult Handler(int id) {
UserInfoModel uim = new UserInfoModel();
uim.Id = id;
return Json(uim);
}
/// <summary>
/// 接收多个参数的 GET 请求
/// /api/Users/MobileAuth?request=hello&name=pkcms
/// </summary>
/// <param name="request"></param>
/// <param name="name"></param>
/// <returns>
/// {
// "request": "hello",
// "name": "pkcms"
// }
/// </returns>
[HttpGet]
public dynamic Handler(string request, string name)
{
return new { request, name };
}
}
}

转载请注明:隨習筆記 » .Net Core 笔记:webapi 路由