問題タブ [asp.net-web-api-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1681 参照

c# - C# で Web API ファサードを実装する方法

背景: IIS 以外の Web サーバーをサポートできるようにする必要があります。これを行うために、すべての処理ロジックを、キューイングメカニズムをトランスポートとして使用する別のサービス (具体的にはRabbitMQ) に移動することを計画しています。基本的にすべてのリクエストをこの他のサービスに転送する HTTP Web API を用意します。IIS では、このファサードを C# で実装し、Tomcat などの他の Web サーバーではおそらく Java で実装します。

私の質問はこれです。c# の場合、すべての HTTP リクエストとコンテンツ リクエストを別のサービスに転送する最良の方法は何ですか。これには asmx HTTPHandler の使用を検討しています。動作しています。しかし、解決策は醜く、きれいな URL には URL リライターを使用する必要があります。

MVC または web-api 自体を使用してこれを行うことが可能かどうかは誰にもわかりません。基本的に、受け取ったすべてのコンテンツを受け取ります。URL 自体、Cookie、クエリ文字列など。梱包して処理のために送ります。

0 投票する
1 に答える
4224 参照

asp.net-web-api-routing - VS2012 WebAPI: 'CpbOutcome' という名前のコントローラーに一致する型が見つかりませんでした

誰かがこれを手伝ってくれますか? 私はこのコントローラーを持っています:

そして、このルート:

そして、 to を作成するPOSThttp://localhost:2515/api/CpbOutcome、次の JSON 構造が使用されます。

次のメッセージが表示されます。

0 投票する
1 に答える
4329 参照

asp.net-web-api-routing - Asp.NET Web Api - 複数の API/名前空間

私の MVC4 Web アプリでは、複数の API をサポートする必要があります。私は周りを見回し、どうやらWeb APIでは、異なる名前空間で同じ名前のコントローラーはサポートされていません。

私のオプションは何ですか?

例: API コンシューマに次のようなリンクを提供できるようにしたい

api1 の Student Resource は、api2 の Student Resource とはまったく異なる場合があります。そのような場合、最善のアプローチは何ですか?私はそれを単一の API にして、URL パラメーターを介して処理したくありません。

0 投票する
2 に答える
1561 参照

c# - Asp.NET WebApi でのファイルのような名前のルーティング

ファイル名に少し似た URL を処理できる ASP.NET Web API ルーティング構成にルートを追加することはできますか?

に次のエントリを追加しようとしましたWebApiConfig.Register()が、うまくいきませんでした ( URI を使用api/foo/0de7ebfa-3a55-456a-bfb9-b658165df5f8/bar.group.json):

ただし、次は機能しました(期待どおりに呼び出さFooController.GetGroup(id,filetag)れました)( URI を使用api/foo/0de7ebfa-3a55-456a-bfb9-b658165df5f8/group/bar):

失敗した場合、IIS エラー (404 - ファイルが見つかりません) が返され、アプリケーションの外部で作成されたように見えます。エラー ページ (IIS Express によって生成された) には、次のエラーの詳細が含まれていました。

これは、「StaticFile Handler」と呼ばれるものが、コードに到達する前にリクエストを取得したことを意味していると思います。大きな問題は次のとおりです。それを防ぐ方法はありますか?

0 投票する
2 に答える
4852 参照

asp.net-web-api - ルートへの Web API ルート マッピング

サード パーティ サーバーからの要求を受け入れるように ASP.NET MVC 4 Web API をセットアップしていますが、ルート マッピングの設定方法がわかりません。サードパーティのサーバーが次の応答を受け取ることを期待しているとします。

  1. http://[my_server]/authorize?user=[user name]&session=[session token]&item=[item]
  2. http://[my_server]/release?user=[user name]&session=[session token]

または、リクエストは専用パスを使用できます。つまり、次のようになります。

  1. http://[my_server]/***api***/authorize?user=[user name]&session=[session token]&item=[item]
  2. http://[my_server]/***api***/release?user=[user name]&session=[session token]

両方の選択肢をサポートできるようにしたいと思います。

より伝統的な形式に従う追加のリクエスト/controller/idも実装する必要がありますが、上記に焦点を当てたいと思います (Web API がここに行く方法であるかどうかさえわかりません)。

次のコントローラーを作成しました。

SO および の他の場所で見つけることができるすべてをWebAppConfig.Register試しましたが、ブラウザでリクエストを試行すると 404 エラーが発生し続けます。

WebAppConfig.Register私の質問は、上記のリクエストを処理するために、具体的にはコントローラー内とコントローラー内で何をしなければならないかということです(私のテスト URL が正しいと仮定して...)。

0 投票する
1 に答える
2116 参照

asp.net-web-api - メソッドごとにASP.NETWebAPIでサポートされているメディアタイプ

コントローラのメソッドを指定すると、次のようになります。

サポートされているメディアタイプを属性で指定する方法はありますか?たとえば、CustomerDtoは複雑なクラスであり、XML(application / xml)ではなくJSON(application / json)でのみシリアル化されますが、PDF(application / pdf)も受け入れることができます。このようなものはありますか?

着信要求がサポートされていない場合、サポートされていない例外/ステータスが返される可能性があります。

注-グローバルに実行できるように、XMLシリアル化をまとめて削除したくありません。代わりに、ルートごとに何が受け入れられるかを定義したいと思います。

使用-ASP.NETWebAPIRC 1(アップグレードが必要)+セルフホスティング

0 投票する
2 に答える
8008 参照

asp.net-mvc - MVC4 WebAPI構成でルートを無視するには?

elmah が追加された MVC4 プロジェクトがあります。私の global.asax の Application_Start() には

#1と#2は以下の通り

テンプレートは同一であり、コントローラーへのルーティングは (URI 仕様の観点から) 希望どおりに機能します。問題は、WebAPI ルートが追加された後に無視ルートが追加されることです。したがって、MVC4s ルーティングによって無視され、Elmah によって処理されるべきもの (例/elmah.axd/styles) は、代わりに WebAPI によってインターセプトされ、リクエストは失敗します => そのため、elmah.axd ページに CSS がありません。global.asax で #1 と #2 を反転しようとしましたが、すべての WebAPI ルーティングが失敗しました。Elmah で CSS が機能しないよりもはるかに悪いです。

基本的に{resource}.axd/{*pathInfo}、最初のルートとして正しく無視するようにWebAPIのルーティングに指示する方法が必要です-どうすればそれを行うことができますか?

0 投票する
1 に答える
34174 参照

c# - ASPNET MVC 4 および webapi を使用したカスタム httphandler および routehandler

ASPNET MVC 4 と WebApi に取り組んでいます。webapi メソッドはモバイル デバイスで使用されます。サービスを保護する必要があり、使用しているのは、特定の方法でデータを暗号化することです。

ここで、コントローラーに到達する前に呼び出しを復号化する必要があります。復号化された情報が有効な場合は、通常どおりコントローラーに送信されます。そうでない場合は、ユーザーを何らかのエラー メソッドにルーティングします。

これを達成するには、カスタム HttpHandler とカスタム RouteHandler が最善の策だと思います。ここのチュートリアルに従っています

Global.asax.cs

および Application_Start で

サービスが起動した後、ProcessRequest にブレークポイントを作成しましたが、ヒットしていません。何が欠けている可能性がありますか?これは正しい方法ですか?

0 投票する
1 に答える
2930 参照

asp.net-web-api - Web API - サポートされている動詞?

私はローカル Code Camp の講演をまとめており、ApiController の HTTP 動詞のニュアンスを理解しようとしています。Beta、RC、および最終リリースの間で ApiController に関するいくつかの点が大幅に変更されました。これを設定する方法についてのアドバイスは矛盾しており、場合によっては間違っています。

WebApiConfig の標準ルーティングを残していると仮定します。

(ここに {action} パラメータを追加すると、本当に物事を頭に入れることができるため)

次のような単純な Crud 呼び出しに対して規則がどのように機能しているかを理解しています。

または、動詞名で始まる限り、これらを変更できます。

ただし、最初の仕様では、ApiController は Get、Put、Post、および Delete をサポートすると述べています。それでも、次のメソッドを追加できます。

これは Head 動詞で機能しますが、あいまいな動詞または存在しない動詞のメソッドを追加することはできません。

ネイティブの「サポートされている」動詞の完全なリストは?

ただし、AcceptVerb 属性を使用して、これらのメソッドのサポートを追加できます。

これも機能します。または、「定義された」動詞には Http 属性を使用します。

どちらが正しいか、または優先されますか? ([GET] や [POST] などの属性もありましたが、これらは非推奨ですか?)

[HttpBindNever] と [NonAction] は同等ですか?

0 投票する
2 に答える
18587 参照

asp.net - 内部ハンドラーは、WebApi委任ハンドラーを使用して割り当てられていません

WebApiがコードで例外をスローする問題が発生しました:

例外は次の行で発生しています。

私はこれを修正する方法の手がかりを持っていません。ルートテーブルに次のものがあります。

これが発生するルートは、DefaultApiルートです。どんな助けでも大歓迎です...