1

IReturn<>リクエスト DTOを複数持つことは可能ですか?

たとえば、次のルート:

[Route("/api/whatever", "GET,POST,PUT,DELETE")]
public class WhateverRequest : IReturn<bool>, IReturn<List<Whatever>>
{
    public string WhateverId { get; set; }
}

リクエスト方法によっては、別のIReturn. Post-Put-Delete リクエストは、リクエストが成功した場合にのみ確認を返す必要があります。

IReturn<bool>

しかし、GETリクエストでは、次のものが必要です:

IReturn<List<Whatever>>

これをSwagger Api/Metadata Pageに反映させる方法もあると良いです。現在、最初の 1 つだけIReturnが表示されています。

これは可能ですか、それともそれぞれにルートを作成する方がよいでしょうIReturnか?

4

1 に答える 1

2

複数の戻り値の型を処理するために、さまざまなルートを作成する必要があります。IReturn<T>orが1 つだけである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使用することを検討してください。したがって、例外がスローされなければ、リクエストは成功です。voidIReturnVoid

于 2014-01-20T23:09:49.123 に答える