当前位置: 首页 > 知识库问答 >
问题:

了解WebApi如何路由请求

唐裕
2023-03-14

我是WebApi的新手,我遵循了以下教程https://www.asp.net/web-api/overview/getting-start-with-aspnet-web-api/tutorial-your-first-web-api

一切都按预期工作--我有两个endpoint

api/products
api/products/id

我试图理解的是它们如何与控制器中定义的方法相关联。

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services

    // Web API routes
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

控制器:

Product[] products = new Product[]
{
    new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },
    new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M },
    new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M }
};

public IEnumerable<Product> GetAllProducts()
{
    return products;
}

public IHttpActionResult GetProduct(int id)
{
    var product = products.FirstOrDefault((p) => p.Id == id);
    if (product == null)
    {
        return NotFound();
    }
    return Ok(product);
}

共有1个答案

巢靖
2023-03-14

我想你会发现这个链接非常有启发性:

https://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-actions-selection

要选择一个操作,它将查看以下内容:

 类似资料:
  • 在常见的Web框架中,router是必备的组件。Go语言圈子里router也时常被称为http的multiplexer。在上一节中我们通过对Burrow代码的简单学习,已经知道如何用http标准库中内置的mux来完成简单的路由功能了。如果开发Web系统对路径中带参数没什么兴趣的话,用http标准库中的mux就可以。 RESTful是几年前刮起的API设计风潮,在RESTful中除了GET和POST

  • Herosphp的url结构采用的是pathinfo的形式,没有严格的路由,只要你的请求方式遵循我们定义的格式组装URL,就可以自动路由,不像某些其他框架一样需要手动添加路由。URL的结构如下: 标准格式:/ucenter/user/login/userid-123-username-xiaoming.shtml (伪静态模式) 当然你也可以这样写: 常规格式:/ucenter/user/logi

  • 问题内容: 在删除井号之前,我已经 这些工作正常 删除井号后,我将其添加到index.html 和index.js 现在点击重定向到 但直接在浏览器中返回404以及其他页面 我应该怎么做才能解决这个问题? 我的后端是Java 问题答案: 那是意料之中的。以下是未打开html5时发生的情况: 您在地址栏中输入网址 浏览器向localhost:8080 / index.html发出http请求,并获取

  • 错误说 全部到未定义的函数组() 位于C:\laragon\www\online ComplianceManagement\routes\web。php:32 28 |返回视图('loginblade');29 |//路由::get('/index','Modules/Login/Http/Controllers/LoginController@index'); 30| }); 31| 32 |路

  • 注解路由 新版本提供了一种最简单的路由注册方法(可以完成基本的路由定义),默认关闭,如果需要开启在应用的app.php配置文件中设置: // 使用注解路由 'route_annotation' => true, 然后只需要直接在控制器类的方法注释中定义(通常称之为注解路由),例如: <?php namespace app\index\controller; class

  • 本文向大家介绍为ASP.NET MVC及WebApi添加路由优先级,包括了为ASP.NET MVC及WebApi添加路由优先级的使用技巧和注意事项,需要的朋友参考一下 一、为什么需要路由优先级 大家都知道我们在Asp.Net MVC项目或WebApi项目中注册路由是没有优先级的,当项目比较大、或有多个区域、或多个Web项目、或采用插件式框架开发时,我们的路由注册很可能 不是写在一个文件中的,而是分