2016-12-01 42 views
2

我需要創建這個URL使用ServiceStack的要求,但我無法找到一個方法來生成這個作爲URL路線:ServiceStack路由使用數組作爲參數

http://server.com/myserver?service=2&item[0].reference=222&item[1].reference=233

下面你可以看到我的嘗試:

[Route("myserver", "GET")] 
public class Request1: IReturn<string> 
{ 
    public int Service { get; set; } 
    public List<Item> item { get; set;} 
} 

public class Item 
{ 
    public int Reference { get; set; } 
} 

回答

2

首先,你應該避免設計通過queryString接受複雜類型的API,因爲它降低了互操作性,因爲每個支持發送複雜類型的框架都會有所不同。

但是目前還不清楚爲什麼你要爲ServiceStack請求創建這樣的url,因爲ServiceStack預計已經內置於C#服務客戶端complex types using the JSV Format

我假設你沒有試圖發送這個請求到一個ServiceStack服務,而是想發送到第三方API。 ServiceStack的C# Service Clients是與ServiceStack服務溝通的自由,如果你想發送請求到第三方API,我會推薦使用HTTP Utils,你可以自由地創建請求自己。

但一般情況下,如果你想自定義如何生成queryString你可以use a custom IUrlFilter

+0

你說得對我發送這個到第三方API,我別無選擇,只能用這種方式。感謝您的幫助,它再次非常有用! –