1

次のようなルートを持つ複数のコントローラーエンドポイントがあります。

[Route("api/myobjects/action1/action2/{objectIds}")]

それらはすべて、次のようなメソッド シグネチャを持っています (アクセス修飾子と戻り値の型は省略されています)。

Post([ModelBinder(typeof(CommaDelimitedArrayModelBinder))] int[] objectIds)

カスタム モデル バインダーを使用すると、次のようにエンドポイントに投稿できます。

../api/myobjects/action1/action2/1,2,3

これはうまくいきます!ただし、これらのメソッドはすべて、ヘルプ ページのドキュメント生成プロセスでは無視されます。

次のように modelbinder 属性を削除すると:

Post(int[] objectIds)

それでもうまくいきません。[FromUri]パラメータに追加し{objectIds}てルート属性から削除した場合にのみ機能します。

Post([FromUri] int[] objectIds)

しかし、これは次のように不要な uri を生成します。

../api/myobjects/action1/action2?objectIds[0]={objectIds[0]}&objectIds[1]={objectIds[1]}

ヘルプ ページのドキュメント プロセスでエンドポイントを認識するにはどうすればよいですか?

4

1 に答える 1

0

config.SetActualResponseType(typeof(ObjectType), "Object", "MethodName"); のように HelpPageConfig を更新する必要があります。

これを使用すると、Web API でそれぞれの URL のヘルプを有効にすることができます

于 2015-08-25T13:22:16.577 に答える