如何编写ServiceStack端点以接受未命名的数组?

时间:2014-09-25 02:26:55

标签: c# json servicestack

我有以下原始请求,我需要为其编写端点。

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数组?

1 个答案:

答案 0 :(得分:1)

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

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