如何从swift调用基于servicestack的web api?
更新,在我像这样将IReturn添加到我的GetMember类之后如何从swift调用基于servicestack的web api?,swift,
servicestack,Swift,
servicestack,更新,在我像这样将IReturn添加到我的GetMember类之后 [Route("/member")] [Route("/member/{member_id}")] public class GetMember:IReturn<CommonResponse> { public int member_id { get; set; } } 这是我的swift密码 var client = JsonServiceClient(baseUrl: "http://localhost
[Route("/member")]
[Route("/member/{member_id}")]
public class GetMember:IReturn<CommonResponse>
{
public int member_id { get; set; }
}
这是我的swift密码
var client = JsonServiceClient(baseUrl: "http://localhost/api/")
let response:CommonResponse = client.get(req, error: &error)!
println(response.toJson())
我得到的是这个
{"recordcount":1}
缺少非常重要的属性:数据
请再次帮助,谢谢
通过向我的DTO GetMember类添加一个IReturn,下面的问题已得到修复
我一直在阅读并尝试从swift调用基于servicestack的API。基本上我读过这篇文章
我已经成功地从api生成了swift代码
但当我在iOS swift项目中写下这篇文章时
let req = GetMember()
req.member_id = 3
var error : NSError?
var client = JsonServiceClient(baseUrl: "http://localhost/api/")
let response = client.get(req, error: &error)
我无法成功地构建它。最后一行出错:无法使用类型为“(GetMember,错误:Inout NSError?)的参数列表调用“get”
请帮助我是否
GetMember
请求数据在其上定义IReturn
接口?如果没有,则需要在呼叫站点上指定,即:
var response:GetMemberResponse = client.get(GetMember())
好的,谢谢,它解决了我的问题。但新的开始了。我有这个。公共类GetMember:IReturn CommonResponse是我的类之一。它有两个属性。记录计数为Int,数据为object。现在我在swift中返回的响应只有recordcount,但缺少数据。@shawhu,请看,不要创建
对象
或接口
属性。谢谢@mythz的回复。我明白了。我完全理解使用接口对DTO来说不是一个好主意,但就本例而言,我需要返回一个标准的返回格式(CommonResponse),并且我碰巧必须实现一个可以返回常规类型(作为对象)的属性。你推荐什么?正确的方法是什么?或者你是说这不是正确的方法,因为CommonResponse的想法不是一个好的实践,所以我应该为每个请求DTO定义单独的返回响应?@shawhu返回对象就是告诉服务的消费者他们无法预测服务返回的内容,因为响应完全没有定义这是服务的反模式,应该是自描述的。您可以将类型展平,使不同的类型适合同一个模式,或者我认为我得到了它。但我要说清楚。你的意思是,要么我们创建一个可以用于GetMember GetPayCheck GetMemberFriends的返回类型,我认为我们不能,要么我们可以创建一个具有很多属性的类型,每个请求类型一个属性?或者我们可以为每个请求的DTO创建单独的返回类型,我认为最后一个是正确的方法,对吗?
var response:GetMemberResponse = client.get(GetMember())