6.1K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

Get、Post特性能否用在标记动态ApiController的方法中替换方法名形成路由

已完成
成员
创建于  
2023-01-07 00:49

输入图片说明

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue,将无法得到答复。

Furion 版本号

哪个版本号?

4.8.3.10


.NET SDK 版本号

  • .NET5
  • .NET6
  • .NET7

项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp
  • WinForm
  • WPF
  • Console

操作系统和版本

  • Windows(版本号?)
  • Linux(版本号?)
  • MacOS(版本号?)
  • 其他(版本号?)

代码环境

  • 开发环境(Development)
  • 生产环境(Production)
  • 测试环境(Tests/单元测试/集成测试 )

描述你的问题

    public class ManageService : IDynamicApiController, IManageService
    {
         
        [HttpPost("login1")] //使用这个会导致默认的/api/manage不见
        [Post("login")]//这个特性是在http请求中使用,能否通过这么写将login替换掉LoginAdmin,形成/api/manager/login 路由地址
        public async Task<LoginAdminOutput> LoginAdmin(AdminDto adminDto)
        {
        }
    }


数据库信息和版本

请提供安装的 Nuget 包版本号。

  • Sqlite(包名和版本号?)

期待结果

期待的结果是?

标记特性,将[Post("login")]中login替换方法名LoginAdmin的路由地址,最终将http://localhost:4000/api/manage/login-admin替换成http://localhost:4000/api/manage/login,不知道需求是否合理
-- 或者有什么方法可以这样做,因为我在接口IManageService已经设置了方法名


确认工单

为了减少不必要的沟通成本和时间成本,请再次确认 Issue 已按照要求正确填写,否则将被直接关闭。

评论 (5)

liuyang 创建了任务
liuyang 添加了
 
建议
标签
liuyang 修改了描述
liuyang 修改了标题
展开全部操作日志

你这 issue,该填的都不填,。。。。

7827890 liuarchitects 1623001545 liuyang 成员
回复 百小僧 拥有者

填写完了,您看下是否合理,或者有什么特性可以将方法名换掉形成路由吗除了写完整的路由方式

liuyang 修改了描述

你有两种方法可以做到:

  • 第一种

推荐使用,[ApiDescriptionSettings(Name = "login")] 即可

public class ManageService : IDynamicApiController, IManageService
{
    [ApiDescriptionSettings(Name = "login")]
    public async Task<LoginAdminOutput> LoginAdmin(AdminDto adminDto)
    {
    }
}
  • 第二种
[Route("/api/manage")]
public class ManageService : IDynamicApiController, IManageService
{
    [HttpPost("login")]
    public async Task<LoginAdminOutput> LoginAdmin(AdminDto adminDto)
    {
    }
}

输入图片说明

7827890 liuarchitects 1623001545 liuyang 成员
回复 百小僧 拥有者

第二种我晓得,那我用第一种了谢谢哈

百小僧 任务状态待办的 修改为已完成
liuyang 负责人百小僧 修改为未设置

在即将发布的新版本中,我让动态 WebAPI 支持了 [ActionName] 特性,这是 ASP.NET Core 自带的特性,同时也支持了 [HttpMethod(Name="")] 的方式。原生是不支持的,我使动态 WebAPI 更强大了

代码提交:f699540

下个版本发布。

输入图片说明

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227 7827890 liuarchitects 1623001545
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助