【问题标题】:How does the controller portion of the routing path get configured in .NET Web API如何在 .NET Web API 中配置路由路径的控制器部分
【发布时间】:2014-02-13 14:44:46
【问题描述】:

我有一个现有的 .NET 4 控制台应用程序,我想开始公开一个 REST API。我正在使用 Microsoft 自托管 Web API 库来公开该 API,但我无法理解路由路径是如何开发的。

这是一个控制器示例,它应该公开一些我的控制台应用程序已经处理的数据库对象:

public class UserController : ApiController
{
    UserInformation[] users;

    public IEnumerable<UserInformation> GetAllUsers()
    {
         // snip.
    }

    public UserInformation GetUserById(int id)
    {
         // snip.
    }

}

我在 Program.cs 中公开我的 API,如下所示:

var config = new HttpSelfHostConfiguration("http://localhost:8800");
config.Routes.MapHttpRoute(
    "API Default", "api/{controller}/{id}",
    new { id = RouteParameter.Optional });

using (var server = new HttpSelfHostServer(config)) { // code }

鉴于上面的代码,我希望我可以通过发出 http://localhost:8800/api/usershttp://localhost:8800/api/users/1 之类的 http 请求来获取资源,但这些似乎不起作用。 GET 请求的控制器部分是如何创建的?用户似乎不是 API 的正确路由路径,但我不确定那里是什么。

感谢您的帮助

【问题讨论】:

    标签: c# .net rest asp.net-web-api


    【解决方案1】:

    那是因为您的控制器被称为 UserController 而不是 UsersController。将您的控制器重命名为 UsersController 或修改您的请求以转到 http://localhost:8800/api/user

    这应该可以解决问题。

    【讨论】:

    • 应该很明显!那么这一切都是由实际的类名隐含定义的吗?那感觉太不对劲了。
    • 嗯,一旦你掌握了窍门,它并没有那么糟糕,应该很快。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2013-11-04
    • 1970-01-01
    • 2015-05-04
    • 2018-02-25
    • 1970-01-01
    • 2017-03-01
    相关资源
    最近更新 更多