パラメータパスパラメータを持つルートとの1:は、私は私のAPIのメソッドを取得する必要がしたい
API /人/ {PERSONID}
と?クエリパラメータを持つルートとの1:
API /人テキスト=何か
しかし、私はこのコードを置く場合:?
// GET: api/people/{personId}
[Route("api/people/{personId}")]
[HttpGet]
public HttpResponseMessage Get(long personId)
{
}
// GET: api/people?text=something
[Route("api/people")]
[HttpGet]
public HttpResponseMessage Get(string text)
{
}
をそして/API /人/ 1を開こうと、私は/API /人のテキストを開こうとすると、それは間違ったフォーマットを言って=何かそれは働く私はそれらの両方の作業ができどのよう
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
:
私は唯一の定義されたデフォルトルートを持っていますか?それがパスパラメータであれば最初のものに行き、クエリパラメータであれば2番目に行くと定義しますか?
'long'を' int'に変更するとどうなりますか? (好奇心から)。しかし、良い質問です。私はまだ答えがわからない。このコードを見ても問題はないとは思っていませんでした。 –
私はこの正確なシナリオをWeb API 2.2でテストしています。あなたは古いWeb APIバージョンを使用していると思います。 –
@JayMee 'long'または' int'結果が同じです –