首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ServiceStack -空请求类?

ServiceStack -空请求类?
EN

Stack Overflow用户
提问于 2013-01-22 14:53:02
回答 1查看 1.8K关注 0票数 9

我有一个关于ServiceStack的问题。为什么有空的请求类,为什么我们必须有一个请求类?例如:

代码语言:javascript
运行
AI代码解释
复制
[Route("/test", "GET")]
public class Test
{

}

public class TestResponse
{
    public string Date { get; set; }
}

public class TestService : Service
{
    public object Get(Test test)
    {
        return new TestResponse { Date = DateTime.Now.ToString() };
    }
}

如果我没有在我的请求中传递对象,我的服务会失败吗?

然后我是我的Global.asax文件,我有:

代码语言:javascript
运行
AI代码解释
复制
public class AxDataAppHost : AppHostBase
{
    public AxDataAppHost() :
        base("AxData", typeof(TestService).Assembly)
    {
    }
}

如果我有一个以上的服务,在上面的例子中我使用的是TestService,但是如果我有一个用于CustomersOrdersProducts的服务怎么办?如何处理多个服务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-22 18:47:56

为什么我们必须有一个请求类?

ServiceStack是一个基于消息的框架,它包含Martin Fowler's Remote Service Best Practices (即远程外观、DTO和网关),它利用ServiceGateway发送粗粒度的请求DTO,通常返回一个类型化的响应DTO(通过services can return anything)。使用基于消息的设计has many advantages,并且支持ServiceStack的类型化端到端API。

例如,您可以重用这些定义服务的类型:

代码语言:javascript
运行
AI代码解释
复制
public class Test : IReturn<TestResponse> {}

public class TestResponse
{
    public string Date { get; set; }
}

在客户机上,这为您提供了一个没有代码生成的类型化API,例如:

代码语言:javascript
运行
AI代码解释
复制
var client = new JsonServiceClient(BaseUri);
TestResponse response = client.Get(new Test());

注意:您甚至不需要定制路由,因为在缺省情况下,ServiceStack的C#客户机将后退到使用 (缺省情况下启用)。

如果我有一个以上的服务,在上面的例子中我使用的是TestService,但如果我有一个用于客户、订单和产品的服务怎么办?如何处理多个服务?

在您的AppHost基构造器中,您传入了一个程序集(即,不是单个服务):

代码语言:javascript
运行
AI代码解释
复制
public AxDataAppHost() : base("AxData", typeof(TestService).Assembly) {}

这将告诉ServiceStack在何处查找和连接所有服务。对于您的服务所在的每个dll/程序集,只需执行一次此操作。

ServiceStack的AppHosts还允许指定多个程序集,您可以使用这些程序集来连接位于多个程序集中的服务,例如:

代码语言:javascript
运行
AI代码解释
复制
public AxDataAppHost() 
  : base("AxData", typeof(TestService).Assembly, typeof(ServiceInNewDll).Assembly) {}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14461375

复制
相关文章
sizeof(空类或空结构体)
A、 0           B、 1            C、 4           D、8
阳光岛主
2019/02/19
1.6K0
使用ServiceStack构建Web服务
提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛。首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Building Cross-Platform Web Services with ServiceStack,所以这里简要介绍一下如何使用ServiceStack快速建立一个WebService服务。 当然,在开始之前,首先要说明一下ServiceStack是个什么东西。 在国内用ServiceStack的似乎很少
庞小明
2018/03/07
1.7K0
使用ServiceStack构建Web服务
ServiceStack.Redis 使用教程
环境准备 Redis (使用Windows版本做测试,运营环境建议使用Linux版本) ServiceStack.Redis-v3.00 在Windows上运行Redis服务器作开发和测试是很好的,但
张善友
2018/01/19
1.5K0
ServiceStack.Redis 使用教程
Optional 类解决空指针异常
空指针异常是导致 Java 应用程序失败的最常见原因。以前,为了解决空指针异常,Google 公司著名的 Guava 项目引入了 Optional 类,Guava 通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到 Google Guava 的启发,Optional 类已经成为 Java8 类库的一部分。Optional 实际上是个容器:它可以保存类型 T 的值,或者仅仅保存 null。Optional 提供很多有用的方法,这样我们就不用显式进行空值检测。
BUG弄潮儿
2021/05/17
8170
使用 ServiceStack 构建跨平台 Web 服务
本文主要来自MSDN杂志《Building Cross-Platform Web Services with ServiceStack》,Windows Communication Foundation (WCF) 是一个相当优秀的服务框架,当我们讨论跨平台的服务的时候,虽然WCF对WebService的支持还行,在面对一些高级应用的不太好,微软重新发展了ASP.NET WebAPI框架,关于这两个框架的讨论可以看我另外一篇文章《WCF和ASP.NET Web API在应用上的选择》 。在讨论跨平台的Web
张善友
2018/01/29
1.7K0
HTTP 请求工具类
坐标 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.1</version> <classifier>jdk15</classifier> </dependency> 工具类 package com.baomidou.springboot.uti
高大北
2022/06/14
9340
[C#2] 4-可空类型、静态类
1. 可空类型 值类型是不可以为null的[即不可为空值], 假如我们想让它为null呢[比如它对映这数据库中的某个表的某个字段,但是这个字段是null]。 自己实现的话,简单的写一个类,有一个值类型的字段,检查该字段是否初始化,是的话返回该值,否的话返回null。 假如是在C#1.0时,那么每个值类型都要写这么一份代码了。C#2.0有了泛型的支持,所以我们可以定义一个泛型版的。 幸运的是C#2.0带来了一个新的类型[System.Nullable<T>]帮我们实现了,T就是需要传入的类型[约束为值类型].
blackheart
2018/01/19
8280
实用避免空指针的工具类
一星陨落,黯淡不了星空灿烂;一花凋零,荒芜不了整个春天。——巴尔扎克 package com.ruben.utils; import com.ruben.pojo.User; import org.thymeleaf.expression.Lists; import sun.reflect.misc.ReflectUtil; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import
阿超
2022/08/16
4840
判断集合是否为空的工具类:CollectionUtils 工具类
判断集合是否为空: 方法: CollectionUtils.isEmpty(集合); 判断集合是否不为空 方法: CollectionUtils.isNotEmpty(集合);
用户9006224
2022/12/21
5910
hutool的Opt工具类,非空判断
一、Hutool🐂🍺:Opt (hutool-码云(gitee.com)) 二、我的demo @Test void testHutool() { List<String> objects = new ArrayList<>(); /* * 为空的情况 * */ System.out.println("\n\n\n为空的情况=================================="); S
倾盖
2022/08/16
2.7K0
STL 设计之 EBO(空基类优化)
本节从空类开始,到 STL 内部,到测试,再到我们自己实现一个 EBO,对比性能,最后再测试,总结。
公众号guangcity
2019/10/24
2.1K0
Map 类集合键值对是否可空?
集合类 Key Value Super 说明 Hashtable 不允许为 null 不允许为 null Dictionary 线程安全 ConcurrentHashMap 不允许为 null 不允许为 null AbstractMap 分段锁技术 TreeMap 不允许为 null 允许为 null AbstractMap 线程不安全 HashMap 允许为 null 允许为 null AbstractMap 线程不安全 参考:阿里巴巴 Java 开发手册
水货程序员
2018/11/13
2.4K0
Scala Http请求工具类
import java.io.IOException import java.util import org.apache.http.client.ClientProtocolException import org.apache.http.client.entity.UrlEncodedFormEntity import org.apache.http.client.methods.{HttpGet, HttpPost} import org.apache.http.impl.client.{DefaultHttpClient, HttpClients} import org.apache.http.message.BasicNameValuePair import org.apache.http.util.EntityUtils import org.slf4j.LoggerFactory import scala.collection.JavaConversions._ import scala.reflect.macros.ParseException
大数据流动
2020/06/19
1.7K0
Java判断不为空的工具类总结
1、Java判断是否为空的工具类,可以直接使用。包含,String字符串,数组,集合等等。
别先生
2018/08/09
5K0
C++中的空类默认包含哪些类成员函数
空类 class Empty { } 空类包含的函数(6个) class Empty { public: Empty(); // 缺省构造函数// Empty( const Empty& ); // 拷贝构造函数// ~Empty(); // 析构函数// Empty& operator=( const Empty& ); // 赋值运算符// Empty* operator&(); // 取址运算符 const Empty* operator&() const; // 取址运算符 const };
全栈程序员站长
2021/04/07
1.7K0
PHP-TP(Request请求类)
七、Request请求类 1、获取输入变量 (见手册–请求–输入变量) 要获取当前的请求信息,可以使用\think\Request类 $request = \think\Request::instan
cwl_java
2020/03/27
1.6K0
android发网络请求工具类
    android上发起网络请求有很多实现方式,有很多的第三方框架如OKHttp、asynhttp、xutils、andbase等等,选择哪个其实影响不大。但平时经常见到有些开发在activity里直接使用这些框架的网络请求,譬如xutils的,直接就new HttpUtils,然后就做请求处理了,这就是我要讲的问题。activity是用来做界面展示的,它不应该与任何的网络请求框架有耦合,也不应该与任何的DB框架有耦合,万一将来你要换框架(或者框架升级后,参数名发生改变,方法名发生改变,或者回调的参数数量改变),那所有发起调用的地方都要修改,这将是致命的。
天涯泪小武
2019/01/17
1.4K0
vue封装axios请求工具类
以勇气面对人生的巨大悲恸,用耐心对待生活的小小哀伤。——雨果 首先安装 # axios cnpm i --save axios # 格式化参数插件 cnpm i -- save qs # 对象合并插件 cnpm i -- save lodash # cookie操作 cnpm i -- save vue-cookie 然后我们自己封装一个请求组件 首先创建文件 然后放入我们的代码。。。 import axios from 'axios' import qs from 'qs' import
阿超
2022/08/16
1.1K0
vue封装axios请求工具类
不报错地调用空指针类的成员函数
  前两个应该都会段错误才对的呀,怎么都运行正常了。其实上述的行为都由this指针左右结果。
Qt君
2019/10/24
1.2K0
告别丑陋判空,一个 Optional 类搞定
最近项目组内做 code review,充斥着大量的、原始的、丑陋的判空语句,大致类似下面的代码:
Java秦师兄
2022/10/21
8120

相似问题

ServiceStack Authenticate属性导致空ref异常-拉取请求267

13

ContentType在使用ServiceStack JsonServiceClient发出Get请求时为空

12

ServiceStack:原始请求流

12

ServiceStack -保存AutoQuery请求

13

缺少ServiceStack请求参数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文