[英]Servicestack - Multiple IReturn on Request DTO
請求DTO上可以有多個IReturn<>
嗎?
例如,以下路線:
[Route("/api/whatever", "GET,POST,PUT,DELETE")]
public class WhateverRequest : IReturn<bool>, IReturn<List<Whatever>>
{
public string WhateverId { get; set; }
}
根據請求方法,我想要另一個IReturn
。 放入刪除后請求僅在請求成功后才返回確認:
IReturn<bool>
但在GET請求中,我想要一個:
IReturn<List<Whatever>>
如果有一種方法可以在Swagger Api /元數據頁面中反映出來,那也很好。 當前僅顯示第一個IReturn
。
這是否可能,或者為每個不同的IReturn
創建路由會更好嗎?
您肯定要創建不同的路線來處理多種返回類型。 僅預期有一個IReturn<T>
或IReturnVoid
,否則使用方客戶端將不知道如何正確鍵入返回的數據。
[Route("/api/whatever", "GET")]
public class ListWhateverRequest : IReturn<List<Whatever>>
{
public string WhateverId { get; set; }
}
// Action
public List<Whatever> Get(ListWhateverRequest request)
{
...
}
[Route("/api/whatever", "POST,PUT,DELETE")]
public class UpdateWhateverRequest : IReturn<bool>
{
public string WhateverId { get; set; }
}
// Action
public bool Post(UpdateWhateverRequest request)
{
...
}
public bool Put(UpdateWhateverRequest request)
{
...
}
public bool Delete(UpdateWhateverRequest request)
{
...
}
我認為您從這些方法返回的是true
,以表明它們已成功完成。 當出現問題時,這些方法是否返回false
,或者拋出異常? 如果你只在方法拋出異常,永不返回false然后而不是返回bool
考慮使用void
與方法IReturnVoid
。 因此,如果沒有引發異常,則請求成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.