WebApi:使用方法名或者控制器名作为接口名称

  今天遇到一个问题:新建的WebApi的项目生成的接口的地址都是以控制器的名字命名的,这样的话,在方法前添加ActionName就不起作用了,但之前一个项目是可以的。

  接口代码:

    public class ValuesController : ApiController
    {
        /// <summary>
        /// 接口地址测试
        /// </summary>
        /// <returns></returns>
        [System.Web.Http.ActionName("Rename")]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }

  生成的接口地址:

  

  折腾了一番,才想起来ASP.NET中有个叫路由的东西。OK,修改App_Start/WebApiConfig.cs

  修改前代码:

 routeTemplate: "api/{controller}/{id}",

  修改后代码:

routeTemplate: "api/{controller}/{action}/{id}",

  修改后的接口地址:

  

  有空研究一下MVC的路由机制。

时间: 2024-10-29 19:09:40

WebApi:使用方法名或者控制器名作为接口名称的相关文章

实习第一周第一天:接口 extends是继承类,implement是实现接口,原接口里面的方法填充,方法名也是不变,重写override是父类的方法名不变,把方法体给改了

一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 接口定义的一般形式为: [访问控制符]interface <接口名> { 类型标识符final 符号常量名n = 常数: 返回值类型  方法名([参数列表]); - } 二.接口的特点 1.Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显

CI中控制器名不能和本个 控制器中的方法名相同

控制器名称:application/controllers/tang.php 控制器中方法名称:application/controllers/role.php  中有方法 public  function tang(){ } 这样就会出现错误 CI中控制器名不能和本个 控制器中的方法名相同,布布扣,bubuko.com

Yii2 获取模块名、控制器名、方法名

Yii2 获取模块名.控制器名.方法名在视图中: 模块名 $this->context->module->id 控制器名 $this->context->id 方法名 $this->context->action->id 在控制器中 模块名 Yii::$app->controller->module->id; 控制器名 Yii::$app->controller->id 方法名 Yii::$app->controller-

第20条:为私有方法名加前缀

私有方法名加上某些前缀, 1.有助于调试: 2.很容易区分公共方法和私有方法(即:容易区分哪些方法容易改动,哪些不易轻易改动.). Objective-C语言没办法将方法标为私有. 每个对象都可以响应任意消息(参见12条),而且可在运行期检视某个对象所能直接响应的消息(参见14条).根据给定的消息查出其对应的方法,这一工作要在运行期才能完成(参见11条)(Objective-C语言的动态性,动态方法派发系统(dynamic method dispatch system)). "p_"为

AspNet WebApi: 了解下HttpControllerDispatcher,控制器的创建和执行

HttpControllerDispatcher作为ASPNET WEB API消息处理管道中重要的部分,负责最后控制器系统的激活,action方法的执行,以及最后的响应生成. HtppControllerDispatcher继承HttpMessageHandler,重载了sendAsync方法. } public class HttpControllerDispatcher : HttpMessageHandler { //some protected override async Task<

第20条:为私有方法名加前缀

本条要点:(作者总结) 给私有方法的名称加上前缀,这样可以很容易地将其同公共方法区分开. 不要单用一个下划线做私有方法的前缀,因为这样做法是预留给苹果公司用的. 一个类所做的事情通常都要比从外面看到的更多.编写类的实现代码时,经常要写一些只在内部使用的方法.笔者建议,应该为这种方法的名称加上某些前缀,这有助于调试,因为据此很容易就能把公共方法和私有方法区别开. 为私有方法名加前缀还有个原因,就是便于修改方法名或方法签名.对于公共方法来说,修改其名称或签名之前要三思,因为类的公共 API 不便随意

golang使用reflects调用方法时,方法名需要首字母大写

golang在服务端处理api请求,因为在其他语言中定义方法一般使用小写开头, 给服务端传递ApiName时一般使用的是小写首字母的方法名. 如果直接使用小写方法名定义方法,将无法通过golang的reflect反射获取和调用. 建议在增加前缀"API_"    如 API_login来定义Api结构的方法 type Api struct{ } func(this *Api)API_login(){ } requestStr := "usr/login/HYUKGDHJHDY

Java学习-025-类名或方法名应用之二 -- 统计分析基础

前文讲述了类名或方法的应用之一调试源码,具体请参阅:Java学习-025-类名或方法名应用之一 -- 调试源码 此文主要讲述类名或方法应用之二统计分析,通过在各个方法中插桩(调用桩方法),获取方法的调用关系.通过调用关系,我们可以统计出被调用次数比较多的方法,同时也可以构建全系统调用关系链:通过操作重要业务流程,可以统计组成重要业务流程的主要方法,加强相应的单元测试.功能.安全.性能等方面的测试.对于软件产品质量控制存在非凡的意义. 下面构建的演示示例调用关系如下所示: GetClassMeth

Java学习-024-获取当前类名或方法名二三文

今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法名时,源码中涉及类名或者方法名的地方必须同步变更,若修改的地方比较多,难免可能发生有遗漏的地方,那么后续通过日志查看分析原因时,就会找不到相应的地方,导致无法分析,查找原因. 为何要获取类名? 调试源码 记录日志 生成报告 统计分析,对调用比例占比大的方法,增强单元测试 构建系统调用关系链,对主要关