- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用旧版本 SomeService : RestServiceBase
可以将 OnGet OnPost OnPut OnDelete 操作与对应的传入动词匹配。
对于较新的版本,假设我有以下内容:
//-----------------------------------------
[Route("/todos/{id}","GET")] //display request
[Route("/todos/{id}", "POST")] //edit request
public class Todo : IReturn<TodoResponse> {
public long Id { get; set; }
public string Content { get; set; }
}
public class TodoService : Service {
public object Get(Todo request) { ... } // will GET verb know this Get() function?
public object Post(Todo request) { ... }// will POST verb know this Post() function?
}
Action名称“Get”“Post”不再标记为“override”,SS如何匹配正确的动词来命中Get()和Post()函数?
//-------------------------------------------- ------------------------------
还是第2轮,现在我有一个修改...
//-----------------------------------------
[Route("/todos/{id}","GET")] //display request
public class DisplayTodo : IReturn<TodoResponse> {
public long Id { get; set; }
}
[Route("/todos/{id}", "POST")] //edit request
public class EditTodo : IReturn<TodoResponse> {
public long Id { get; set; }
public string Content { get; set; }
}
public class TodoService : Service {
//different request DTOs this time ...
public object Get(DisplayTodo request) { ... } //again, same route "/todos/{id}"
public object Post(EditTodo request) { ... } //will SS get confused about the verbs?
}
在同一个路由“/todos/{id}”下,SS如何区分上述情况下的动词?
你能帮我解决这 2 个问题吗?谢谢!
最佳答案
这是取自 New API wiki page 的智能路由部分:
在大多数情况下,您不需要了解这一点,因为 ServiceStack 的路由会按照您的预期工作。虽然这仍然可以作为描述 ServiceStack 的路由解析顺序的一个很好的引用:
只有当有多个路由与传入请求的 pathInfo 匹配时,这些规则才会起作用。
让我们使用新的 API 设计测试套件中定义的路由来查看这些规则的一些示例:
[Route("/reqstars")]
public class Reqstar {}
[Route("/reqstars", "GET")]
public class AllReqstars {}
[Route("/reqstars/{Id}", "GET")]
public class GetReqstar {}
[Route("/reqstars/{Id}/{Field}")]
public class ViewReqstar {}
[Route("/reqstars/{Id}/delete")]
public class DeleteReqstar {}
[Route("/reqstars/{Id}", "PATCH")]
public class UpdateReqstar {}
[Route("/reqstars/reset")]
public class ResetReqstar {}
[Route("/reqstars/search")]
[Route("/reqstars/aged/{Age}")]
public class SearchReqstars {}
这些是这些 HTTP 请求的结果
GET /reqstars => AllReqstars
POST /reqstars => Reqstar
GET /reqstars/search => SearchReqstars
GET /reqstars/reset => ResetReqstar
PATCH /reqstars/reset => ResetReqstar
PATCH /reqstars/1 => UpdateReqstar
GET /reqstars/1 => GetReqstar
GET /reqstars/1/delete => DeleteReqstar
GET /reqstars/1/foo => ViewReqstar
如果有多个完全相同的路由声明如下:
[Route("/req/{Id}", "GET")]
public class Req2 {}
[Route("/req/{Id}", "GET")]
public class Req1 {}
public class MyService : Service {
public object Get(Req1 request) { ... }
public object Get(Req2 request) { ... }
}
首先声明的 Action 上的路线被选中,即:
GET /req/1 => Req1
关于c# - ServiceStack 新的 API Actions 匹配 Rest Verbs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761246/
我正在研究来自 wiki.commonjs.org 的异步模块定义我想知道这段代码的含义是什么。 特别是,我的问题是: return beta.verb();和return require("beta
我正在开发 XeroAPI,这是我实习期间交给我的一项任务。我不熟悉 OAuth,而且在编程方面我几乎是个新手。现在,我设法使用 Ashley Schroder 的关于使用 java 访问公共(pub
这个 var psi = new ProcessStartInfo("cmd") { Verb = "runas",
以下表达式显示了 16 个基本 bool 运算中每一个的真值表: (0 b./; 1 b./; 2 b./; 3 b./; 4 b./; 5 b./; 6 b./; 7 b./; 8 b./;
在 LaTex 中,如果我使用 \动词 ,我怎么逃脱| ?例如,我想显示 ab|bc :\动词|ab []公元前|。用什么代替[] ? 最佳答案 您可以在 \verb 中使用其他字符比| ;例如,你可
全新的 Powershell,使用 Windows 10 上的默认安装。 在我的系统上,运行 Get-Verb给我: > Get-Verb un*
我看到 HTTP 方法通常称为 Verbs。 (我知道正确的名称是方法来自:https://www.rfc-editor.org/rfc/rfc7231) 这个名字从何而来? 最佳答案 Method
我正在使用 ShellExecuteW 启动一个批处理文件。代码看起来有点像这样: ShellExecuteW(GetDesktopWindow(), wide_verb.c_str(), wide_
我正在寻找一种方法来将 API 封装在基于 PHP 的 Web 应用程序、数据库和 CMS 中的默认函数中。 我环顾四周,发现了几个“骨架”框架。除了我的问题中的答案,还有Tonic ,我喜欢的 RE
为了在 powershell (V7) 脚本中使用类,似乎有必要声明模块,在其中实现类(Powershell 语言),通过 using module .\MyModule.psm1 模块“MyModu
我正在使用带有@PreAuthorize的自定义访问检查器: @RestController @RequestMapping("/users") public class Users { @P
在docs对于这个属性,什么都没说,那么这个属性到底有什么作用呢? 最佳答案 引用Routing to controller actions in ASP.NET Core : Route Name
有没有什么方法可以使用 ShellExecute 的 Properties Verb 打开属性中的特定选项卡? 有没有办法做到这一点? (不必是 ShellExecute,但找不到太多可以显示文件“属
我有一个场景,在这个场景中,我有 REST API 来管理一个我们称之为 Group 的资源。一个组包含成员并且组资源是动态的 - 无论何时检索它,您都会获得最新的数据(因此查询必须运行服务器端以更新
在 WEB API Controller 中,我们可以使用相同的方法名称和不同的 HTTP 动词吗? [HttpGet] public string Test()
当我打开 verb.exc 时,我可以看到 saw see 虽然我在代码中使用词形还原 >>>print lmtzr.lemmatize('saw', 'v') saw 这怎么会发生?我对修改 wor
我想对这段文字进行词形还原,它只是对名词进行词形还原,我还需要对动词进行词形还原 >>> import nltk, re, string >>> from nltk.stem impo
运行 R 4.0.2 和 dplyr 1.0.2 我正在尝试使用 n = n()在对 srvyr 对象的总结调用中: relduration_by_age_grp % filter(ongoing
我正在编写 vue.js 教程,发布于 https://scotch.io/tutorials/how-to-handle-file-uploads-in-vue-2我正在尝试修改上传网站以使用 Mi
我想更新 Azure 上 Blob 存储中的 json 文件,而 WebClient.uploadData(url,data) 它给出错误: The remote server returned an
我是一名优秀的程序员,十分优秀!