以前の WebAPI (ベータ版) では、URI に追加されたオプションのパラメーターを受け取る "GetAll" メソッドを作成できました。
http://localhost/api/product?take=5&skip=10
これはまだ機能しているようですが、すべてのパラメーターを含めた場合のみです。(ベータ版) では、パラメーター ( http://localhost/api/product/
) を省略でき、"GetAll" メソッドが呼び出されます (take & skip は null になります)。一部のパラメーターを省略することもできますhttp://localhost/api/product?take=5
(skip は null になります)。
public IEnumerable<ProductHeaderDto> GetAll(int? take, int? skip)
{
var results = from p in productRepository
select new ProductHeaderDto
{
Id = p.Id,
Version = p.Version,
Code = p.Code,
Description = p.DescriptionInternal,
DisplayName = p.Code + " " + p.DescriptionInternal
};
if (skip != null) results = results.Skip(skip.Value);
if (take != null) results = results.Take(take.Value);
return results;
}
(RC) で、「要求に一致するコントローラー '製品' でアクションが見つかりませんでした」と表示されるようになりました。パラメータの両方またはいずれかが欠落している場合。メソッドパラメーターに [FromUri] を追加しようとしましたが、影響はありません:
public IEnumerable<ProductHeaderDto> GetAll([FromUri] int? take, [FromUri] int? skip)
デフォルト値の設定も試しました:
public IEnumerable<ProductHeaderDto> GetAll(int? take = null, int? skip = null)
メソッド署名を照合しようとするときに使用できる「オプションの」パラメーター属性はありますか?