簡體   English   中英

Servicestack-多個IReturn on Request DTO

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM