如何编写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端点来接受未命名的数组

在ServiceStack中,所有请求DTO都需要是一个唯一命名的非泛型类型,它可以通过从List<T>继承请求DTO来接受DTO的数组,例如:

[Route("/User/FitbitImport/Notification")]
public class FitbitSubscriptionNotification : List<FitBitNotification> {}