如何编写ServiceStack端点来接受未命名的数组
本文关键字:未命名 数组 何编写 ServiceStack 端点 | 更新日期: 2023-09-27 18:24:14
我收到了以下原始请求,需要为其编写一个端点。
POST http://remote.zacharias.me:85/User/FitbitImport/Notification HTTP/1.1
X-Fitbit-Signature: +uzx+89UfHXZvMlRucZU/V8DilQ=
Content-Length: 126
Content-Type: application/json
Host: remote.zacharias.me:85
Connection: Keep-Alive
[{"collectionType":"activities","date":"2014-09-24","ownerId":"2RXBTN","ownerType":"user","subscriptionId":"test-activities"}]
如果我使用一个空白的请求对象,我就无法访问任何数据。我尝试添加一个解析方法(如下所述:http://docs.servicestack.net/text-serializers/json-serializer)以反序列化数据,但随后我只得到一个RequestBindingException。我确实将示例从结构更改为类,因为结构正在抛出未设置为引用的对象。
[Route("/User/FitbitImport/Notification")]
public class FitbitSubscriptionNotificationRequest
{
//Optional property and parse method.
public List<FitBitNotificationDTO> Data {get;set;}
public static FitbitSubscriptionNotificationRequest Parse(string json)
{
var data = json.FromJson<List<FitBitNotificationDTO>>();
return new FitbitSubscriptionNotificationRequest { Data = data };
}
}
我如何编写这个端点,以便访问fitbit发送给我的json数组?
在ServiceStack中,所有请求DTO都需要是一个唯一命名的非泛型类型,它可以通过从List<T>
继承请求DTO来接受DTO的数组,例如:
[Route("/User/FitbitImport/Notification")]
public class FitbitSubscriptionNotification : List<FitBitNotification> {}