methods - Openrasta 的 Get 方法在资源处理程序中的优先级问题

标签 methods resources get url-routing openrasta

我是 openRasta 框架的新手。我有一个名为 Project 的资源。我要对此资源执行 2 种不同类型的 GET,因为我需要这两个 GET 的不同信息。我的配置如下

ResourceSpace.Has.ResourcesOfType<IList<Project>>()
     .AtUri("/projects")
     .And.AtUri("/miniprojects")  
     .HandledBy<ProjectHandler>()
     .AsJsonDataContract()
     .And.AsXmlDataContract();

我在Handler中的方法如下

[HttpOperation(HttpMethod.GET, ForUriName = "/projects")]
public OperationResult GetProjectsList()
{
}

[HttpOperation(HttpMethod.GET, ForUriName = "/miniprojects")]
public OperationResult GetMiniProjectList()
{
} 

每当我对此资源执行一些 GET 操作时,无论我的 URL 是什么,例如 http://localhost/projectshttp://localhost/miniprojects )每次都会调用处理程序类中名称为 GetXXX 的第一个方法。当我更改处理程序文件中 GetXXX 方法的顺序时,会调用另一个方法。
所以我的问题是,Handler中的方法顺序是否决定了调用哪个GetXXX方法?此外,我在 HttpOperation 属性中为代码片段中提到的每个 GetXXX 方法指定了不同的“ForUriName”,但顺序仍然优先。

有人可以帮我解决这个问题吗?或者如果我遗漏了什么请告诉我。

提前致谢。

最佳答案

如果无法区分两个 URI,那么我们根本不保证任何顺序。

如果您确实想以这种方式使用 URI 路由(而不是对不同的资源建模),那么您的 uri 需要使用名称进行注册

.AtUri("/miniprojects").Named("miniprojects")

命名位需要与属性匹配

[HttpOperation(ForUriName="miniprojects")]

关于methods - Openrasta 的 Get 方法在资源处理程序中的优先级问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8061510/

相关文章:

c++ - FindResource() 无法找到数据,即使数据在 exe 中

c++ - 在 C++ 中,如果有两个同名方法,一个标记为 const,另一个不标记为 const,如何解析方法调用?

java - 如何将字符串中的字符转换为数字(转换为电话号码)?

c++ - 英特尔 C++ 编译器是否有资源编译器?

java - 如何访问JEE6项目中的图片资源?

Python-Scapy 之类的-如何在数据包级别创建 HTTP GET 请求

javascript - 如何使用javascript获取div中的子节点

java - "do"在这里做什么? ( java )

Java Enum 作为 Enum 中的泛型类型

java - 如何使用 JavaScript 从端点获取数据?