問題タブ [asp.net-web-api]
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.
autofac - Autofac と ASP.NET Web API ApiController
私はしばらくの間、MVC 3 で autofac を使用しており、気に入っています。最近、プロジェクトを MVC 4 にアップグレードしましたが、Web Api ApiControllers を除いてすべてが機能しているようです。次の例外が発生しています。
これは、autofac を介した DI の問題のようです。私は何かを見逃していますか、それとも何かが進行中ですか?MVC4 はリリースされたばかりでベータ版なので、あまり期待していませんが、何か不足している可能性があると考えました。
c# - WCF Web API と ASP.NET Web API の違いは何ですか?
私は過去に WCF WebAPI を使用して少し作業を行ったことがあり、その機能の多くが本当に気に入りました。現在 ASP.NET Web API で遊んでいるだけで、完全に異なるようです (IE は WCF から完全に削除されています)。
ASP.NET 4 Web API に含まれている WCF WebAPI の機能を知っている人はいますか?
c# - ASP.NET Web API でバッファ サイズと最大メッセージ サイズを構成する方法
これらのプロパティは、WCF Web API 構成に含まれていました。
wcf - Asp.Net Web APIとWCFサービスの違いは何ですか?
過去数か月以来、このAsp.NetWebAPIはMicrosoftの注目製品のようです。WS*サービスに代わるものですか。WCFサービスとの違いは何ですか?そして、それをWebアプリケーション開発に最適と見なすことができるのはどこでしょうか。
datetime - MVC4シングルページアプリケーションと日時
MVC 4の新しいシングルページアプリケーションツールを試してみたところ、私が見つけた例のいずれにも、WebApiを介して更新されたDateTimeの例が含まれていないことに気付きました。私はすぐにその理由を知りました。
提供されたテンプレートから標準SPAを生成することから始めました。次に、TodoItem.csを開き、DateTimeフィールドを追加しました。次に、コメントの指示に従ってコントローラーを生成しました。(日時フィールドがない場合、すべてが正常に機能します)。
すべてが生成された後、アプリを起動し、コントローラーインデックスに移動しました(コントローラーを「タスク」と呼びました)。期待どおりに0レコードのグリッドページを取得し、追加ボタンをクリックしました。期待どおりに編集ページに移動し、光沢のある新しい日時フィールドに日付を含むいくつかのデータを入力しました。次に、[保存]をクリックしました。
次のようなエラーが発生しました。
サーバーエラー:HTTPステータスコード:500、メッセージ:タイプSystem.Web.Http.Data.ChangeSetEntry[]のオブジェクトの逆シリアル化中にエラーが発生しました。DateTimeコンテンツ「01/01/2012」は、JSONで必要な「/ Date(」で始まり、「)/」で終わるわけではありません。
ツールはまだDateTimeをサポートしていないようです。私はそれを理解して機能させるために少し時間を費やすことができると確信していますが、すでにこの問題を修正して洞察を提供できる誰かとここで少し運が見つかるかもしれないと思いました。
誰かがすでにこれと戦った?
更新:これを尋ねてから見つけた情報をさらに追加しています。以下に示すように、フォーマッターとしてJSON.Netを使用してみました。それが最終的な解決策になると思いますが、以下のポスターが推奨するようにするだけでは十分ではありません。
JSON.Netシリアライザーを使用すると、次のエラーが発生します。
このDataControllerは、エンティティ「JObject」の操作「Update」をサポートしていません。
その理由は、JSON.Netが、フォーマッターが脱セラリゼーションしようとしているオブジェクト(System.Web.Http.Data.ChangeSet)に完全にデータを入力しないためです。
送信されるjsonは次のとおりです。
組み込みのJsonFormatterは、このJsonをChangeSetオブジェクトに再構成し、EntityフィールドとOriginalEntityフィールドにTodoItemオブジェクトを埋め込むことができます。
誰かがこれを適切に逆シリアル化するためにJSON.Netを入手しましたか?
asp.net-mvc-4 - ASP.NET Web API のカスタム MVC AuthorizeAttribute
Web API コントローラーにカスタム承認属性を実装しようとしていますが、予期しない動作に遭遇しました。
上記のコードは非常にうまく機能します。 「myUser」がアイテムを取得できるようにし、ボット以外の誰もアクセスを許可しません。ただし、カスタム承認で同じアプローチを試みると、チェック全体がスキップされ、すべてのユーザーがリソースにアクセスできます。AuthorizeCore
派生クラスのメソッドもOnAuthorization
オーバーライドされたメソッドも呼び出されません。
派生クラスは から継承されSystem.Web.Mvc.AuthorizeAttribute
、プロジェクトは IIS に展開され、Windows 認証と偽装が有効になり、匿名認証が無効になります。
同じカスタム認証を MVC コントローラーに追加すると、機能します。しかし、API コントローラーでは何もありません。属性も機能しない場合は、Authorize
より理にかなっています。何か不足していますか?これは予想される動作ですか、それともベータ版のバグですか?
c# - ASP.NET Web API の単体テスト
私は単純な投稿を単体テストしています:
ただし、「URL」と「リクエスト」は明らかに null になります。
ControllerContext と HttpContext をモックアウトする代わりの方法はありますか?
アップデート:
次のように変更しました。
更新 2:
これの方が良い:
asp.net - Web APIはXMLをJsonに変換できますか?
新しいMVCWebAPIでラップしたいレガシーWebサービスがあります。質問は、ASP.NET WebAPIでxmlをjsonに変換できるかどうかです。
XDocumentを使用して動的オブジェクトを作成し、それを返すことを考えていましたが、ExpandoObjectで試してみると、残念ながら、キーと値のペアを持つjsonオブジェクトが返されました。
asp.net-mvc-4 - AREAで作成されたコントローラーを登録するにはどうすればよいですか?
MVC4のWEBAPIを使用してコントローラーを公開しています。
最初に、MVC4 WEBAPIプロジェクトを作成し、Webページを開かないようにプロジェクトを設定し、外部アプリがURL(WEB API)を呼び出すのを待ちます。VS2010のプロジェクトは、VS2010の開発サーバーではなくIIS7Expressから実行するように設定されています。これは問題なく動作します。ブラウザはファイルをダウンロードするように要求します。ブラウザは返されたデータ(RAW TEXT)をどう処理するかわからないので、これは私にとっては問題ありません。
次に、MVC4プロジェクトエリアにAREAを作成し、コントローラー(WEB APIタイプ)を追加しました。
次に、もう一度プロジェクトを実行し、ブラウザーでURL(WEB API)を入力しました。そしてそれは失敗します。
エド。
asp.net-mvc-4 - Web API、API コントローラー、およびモデルを更新する方法は?
MVC 4 で API コントローラーを試していますが、put を使用してオブジェクトを更新するときのベスト プラクティスについて質問があります。
RavenDB をデータ ストレージとして使用しており、json を動的オブジェクトにシリアル化および逆シリアル化できる JsonDynamicConverter 型のコンバーターを持つカスタム MediaTypeFormatter を作成しました。そうは言っても、私のAPIコントローラーPutメソッドは次のようになります
この動的オブジェクトは次のようになります。
これまでのところは問題ありませんが、id pages-2 でエンティティを更新する必要があります。UpdateModel は ApiController に存在しないため、私の質問は、これを行うための最良の/推奨される方法は何ですか?