gpt4 book ai didi

servicestack - 需要有关服务堆栈实现的帮助

转载 作者:行者123 更新时间:2023-12-04 19:17:13 29 4
gpt4 key购买 nike

我的服务堆栈实现面临一个问题,我发出了以下请求 url 来调用我的服务并实现了一个 perfmon 类和 perfmonservice 类

    [RestService("/perfmon/application/{appliationId}")]
[RestService("/perfmon/application/{appliationId}/{countername}")]
[RestService("/perfmon/user/{userId}")]
[RestService("/perfmon/user/{userId}/{countername}")]

现在,当我调用任何 URL 时,它会调用以下函数
 public override object OnGet(Perfmon request)
{
return base.OnGet(request);
}

那么我如何在这里决定哪个 URL 进行了这个调用,天气服务堆栈提供了任何特定的方法来做到这一点,或者我需要通过检查属性来编写手动逻辑?

提前致谢

最佳答案

只需检查请求 DTO 以查看填充了哪些字段,即

if (request.applicationId != null && request.countername != null) #2
if (request.userId != null && request.countername != null) #4
if (request.applicationId != null) #1
if (request.userid != null) #3

另请注意,用户也可以使用查询字符串填充请求 dto,即,如果他们通过以下方式给您打电话:
/perfmon/application/1/countername?userId=2

然后将填充所有字段。最后,您可以使用用于调用请求的绝对 URI 来检索有关请求的信息:
base.RequestContext.AbsoluteUri

最后,您可以通过以下方式获取 IHttpRequest 对象本身:
var httpReq = base.Request; //or with base.RequestContext.Get<IHttpRequest>();

关于servicestack - 需要有关服务堆栈实现的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007232/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com