に2つのRoute
属性を追加して、どちらのURIがユーザの呼び出しであるかを確認し、それに従って結果を戻すのは良いコーディング方法ですか?ここでWebページアプリケーションとWeb APIの両方に同じ `Action`を使用する
は一例です:
[Route("/api/DoThis")]
[Route("/DoThis")]
public IActionResult DoThis()
{
if (HttpContext.Current.Request.Url.AbsolutePath.StartsWith("/api"))
{
return SomeJSON();
}
else
{
return View();
}
}
が、これはこれを達成するための最善のアプローチですか?それとももっと直接的なものがありますか?
コンテンツネゴシエーションを使用することをお勧めします。したがって、リクエストのAccept型ヘッダのコンテンツタイプに基づいて、応答が何であるかを決定します。 – Nkosi
@Nkosi、ありがとう。これは正しいですか(または良い練習をしましょうか)、私は 'Action'の中で直接ヘッダをチェックしなければなりませんか?ちょうどもう一つ正確な点は、これは実際にウェブページアプリとAndroidアプリで消費可能なAPIアプリを構築するのに使用される一般的な方法ですか?誰がこの行動を呼び出して適切なデータを返すかを決定するためにヘッダーをチェックしますか? –
私はこれがベストプラクティスであると言うまでは行っていません。それは実行可能なオプションです。 1つのアクションに複数のルートを使用すると機能します。どのコンテンツタイプを返すかについてアクションが交渉することにより、アクションはより柔軟になります。しかし、それらはすべてトピックに関する私の意見です。 – Nkosi