如何在 WebAPI 中筛选基于结果的 url 参数

本文关键字:结果 参数 url 于结果 WebAPI 筛选 | 更新日期: 2023-09-27 18:35:46

我有WebAPI url(http://localhost:5134/api/TechDisci/00026),它为用户00026返回多个技术学科。 /TechDisci/是控制器名称,Get方法返回 JSON 数据。

JSON 数据在结果集中具有主要值和次要值。现在用户想通过像这样传入 url 来primarysecondary过滤它

http://localhost:5134/api/TechDisci/00026/primaryhttp://localhost:5134/api/TechDisci/00026/secondary .

我的Java家伙能够做这种url的事情。如何在 WebAPI 中处理 samethig?

如何在 WebAPI 中筛选基于结果的 url 参数

您可以在控制器中使用"主要"和"次要"作为操作(方法)名称。然后,您将需要添加一个新路由(在类Application.WebApiConfig中)。

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}/{action}"
);

或者,如果"主要"和"次要"是同一方法的参数。然后,您可以添加此路由

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

在这种情况下,您需要向接受两个参数(id、优先级)的 Get 方法添加一个重载

在这两种情况下,在主路线之前添加路线,以防万一,以确保它是第一个匹配的路线。