タグ付けされた質問 「asp.net-web-api」

ASP.NET Web APIは、ブラウザーやモバイルデバイスなどのクライアント用のHTTPサービスを構築するためのフレームワークです。これは、Microsoft .NET Frameworkに基づいており、RESTfulサービスを構築するための理想的な選択肢です。

11
WebAPI複数のPut / Postパラメーター
WebAPIコントローラーに複数のパラメーターを投稿しようとしています。1つのパラメーターはURLからのもので、もう1つは本文からのものです。ここにURLがあります: /offers/40D5E19D-0CD5-4FBD-92F8-43FDBB475333/prices/ これが私のコントローラーコードです: public HttpResponseMessage Put(Guid offerId, OfferPriceParameters offerPriceParameters) { //What!? var ser = new DataContractJsonSerializer(typeof(OfferPriceParameters)); HttpContext.Current.Request.InputStream.Position = 0; var what = ser.ReadObject(HttpContext.Current.Request.InputStream); return new HttpResponseMessage(HttpStatusCode.Created); } 本文のコンテンツはJSON形式です。 { "Associations": { "list": [ { "FromEntityId":"276774bb-9bd9-4bbd-a7e7-6ed3d69f196f", "ToEntityId":"ed0d2616-f707-446b-9e40-b77b94fb7d2b", "Types": { "list":[ { "BillingCommitment":5, "BillingCycle":5, "Prices": { "list":[ { "CurrencyId":"274d24c9-7d0b-40ea-a936-e800d74ead53", "RecurringFee":4, "SetupFee":5 }] …

13
Postman:ネストされたJSONオブジェクトを送信する
ASP.NET Web APIを使用しています:http : //xyzdomain.com : 16845 / api / returns / returns Itemsコレクションを指定して、Postman Chrome拡張機能を使用してエンドポイントにPOSTリクエストを送信するにはどうすればよいですか。 [ { "Items": [ { "sku": "9257", "Price": "100", "Quantity": "500", "DiscountPercent": "1", "backordered": "2" } ], "order_id": "F429768865001", "status_code": "Shelf", "Exception": "no error" } ]

11
EFで親エンティティを更新するときに子エンティティを追加/更新する方法
2つのエンティティは1対多の関係です(コードが最初に流れるAPIによって構築されます)。 public class Parent { public Parent() { this.Children = new List<Child>(); } public int Id { get; set; } public virtual ICollection<Child> Children { get; set; } } public class Child { public int Id { get; set; } public int ParentId { get; set; } public string Data …

3
ASP.NET Web APIでのユーザー認証
このトピックは私にとって信じられないほど混乱しています。私はHTTPアプリの新人ですが、どこかからJSONデータを使用するiPhoneクライアントを開発する必要があります。私はMSのWeb APIを選択しましたが、それは十分に簡単に思えたのですが、ユーザーの認証に関しては非常にイライラします。 ログイン画面から、数時間のグーグル操作後AuthorizeにApiControllerメソッドで属性を使用するまで、ユーザーを認証する方法の明確な例を見つけることができなかったことに驚いています。 これは問題ではありませんが、これを正確に行う方法の例を求めています。私は以下のページを見てきました。 ASP.NET Web APIを安全にする ASP.NET Web APIによる基本認証 これらは無許可の要求の処理方法を説明LoginControllerしていますが、ユーザーの資格情報を要求して検証するためののようなものは明確に示していません。 素敵な簡単な例を書いてくれる人、または私を正しい方向に向けてくれる人はいますか? ありがとう。

9
Web APIメッセージハンドラーでカスタムヘッダー値を抽出する方法
現在、次のように 'SendAsync'をオーバーライドするメッセージハンドラーをWeb APIサービスに持っています。 protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { //implementation } このコード内で、という名前のカスタム追加リクエストヘッダー値を検査する必要がありますMyCustomID。問題は私が次のことをしたときです: if (request.Headers.Contains("MyCustomID")) //OK var id = request.Headers["MyCustomID"]; //build error - not OK ...次のエラーメッセージが表示されます。 タイプ[System.Net.Http.Headers.HttpRequestHeaders 'の式に[]を使用したインデックス作成を適用できません このオーバーライドされたメソッドに渡された(MSDN Documentation)インスタンスを介して単一のカスタムリクエストヘッダーにアクセスするにはどうすればよいですか?HttpRequestMessage

11
GlobalConfiguration.Configure()がWeb API 2および.NET 4.5.1の移行後に存在しない
最近、このガイドに従ってプロジェクトを.NET 4.5.1およびWeb Api 2に移行しました。 MS開発者のリックアンダーソンが最初に行うことを要求するのは、変更です。 WebApiConfig.Register(GlobalConfiguration.Configuration); に GlobalConfiguration.Configure(WebApiConfig.Register); global.asaxファイル内。それでも、ビルドしようとするとエラーが発生します。 エラー1 'System.Web.Http.GlobalConfiguration'には 'Configure'の定義が含まれていません 私のプロジェクトは現在MVC 5とWeb Api 2と.NET 4.5.1にありますが、System.Web.Httpはまだそれが.NEt 4.0バージョンだと思っています。 これを修正するにはどうすればよいですか? ありがとうございました。 編集: これが私のアセンブリバインディングです: <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> </dependentAssembly> <!-- <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> </dependentAssembly> …

5
Request.CreateResponseによるASP.NET WebApiユニットテスト
私のApiControllerのユニットテストを記述しようとして、いくつかの問題に直面しました。Request.CreateResponseと呼ばれる優れた拡張メソッドがあり、応答の生成に役立ちます。 public HttpResponseMessage Post(Product product) { var createdProduct = repo.Add(product); return this.Request.CreateResponse(HttpStatusCode.Created, createdProduct); } 部分的なモックを使用せずに、または「新しいHttpResponseMessage(...)」を直接使用せずにCreateResponseをモックする方法はありますか?

1
既存のASP.NET MVC(5)WebアプリケーションプロジェクトにWeb APIを追加する方法
新しいMVC(5)プロジェクトを作成するときにWeb APIチェックボックス(プロジェクトに追加)にチェックマークを付けるのを忘れた場合、Web APIを追加して機能させるには何が必要ですか? 移行に関する質問はたくさんありますが、Web APIをMVC 5プロジェクトに追加するための完全で最新の手順を持っているようには見えず、古い回答のいくつかから変更されているようです。 MVC 4にWeb APIを追加する GlobalConfiguration.Configure(WebApiConfig.Register)MVC 4の追加

4
JSONファイルをC#で書き込む方法
C#でJSON形式を使用して、次のデータをテキストファイルに書き込む必要があります。大括弧は、有効なJSON形式であるために重要です。 [ { "Id": 1, "SSN": 123, "Message": "whatever" }, { "Id": 2, "SSN": 125, "Message": "whatever" } ] これが私のモデルクラスです: public class data { public int Id { get; set; } public int SSN { get; set; } public string Message { get; set;} }

19
ASP.NET Web API-PUT&DELETE動詞は許可されていません-IIS 8
最近Visual Studio 2010からVisual Studio 2012 RCにアップグレードしました。インストーラーは、Visual StudioがデフォルトのWebサーバーとして使用するIIS 8 Expressもインストールします。 IIS 8は、PUT AND DELETE動詞を使用するWEB API要求をブロックしています。IISは405エラーを返しますThe requested resource does not support http method 'PUT'。 私は過去にこれに関して問題があり、Stack Overflowにいくつかのメッセージがあることを知っています。IIS 7 Expressでは、解決策はWebDavをアンインストールすることでした。残念ながら、IIS 8でこれを行う方法はありません。 applicationhost.configからWebDavセクションを編集してみましたが、効果はありませんでした。たとえば<add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" />、設定ファイルから削除しました。 私はこれにあまりにも長い時間を費やしました。PUTとDELETEを有効にする簡単な方法があるはずです。

10
ASP.NET WebApi対MVC?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 この質問を改善する ASP.NET MVCコントローラーを使用すると、さまざまな形式でデータを公開できます。AspNetWebAPIは、APIを作成するために明示的に設計されていますが、MVCコントローラーを使用して簡単に作成できます。従来のMVCコントローラーよりも優れているケースはわかりません。WebApiの利点が明白で、アプリケーションに別の複雑なレイヤーを追加する価値があるシナリオに興味があります。 質問: MVCに関してasp.net WebApiを使用する利点と欠点は何ですか?

9
ASP.NET Web APIでダウンロードファイル名を設定する方法
私のApiControllerクラスには、サーバーによって作成されたファイルをダウンロードするための次のメソッドがあります。 public HttpResponseMessage Get(int id) { try { string dir = HttpContext.Current.Server.MapPath("~"); //location of the template file Stream file = new MemoryStream(); Stream result = _service.GetMyForm(id, dir, file); if (result == null) { return Request.CreateResponse(HttpStatusCode.NotFound); } result.Position = 0; HttpResponseMessage response = new HttpResponseMessage(); response.StatusCode = HttpStatusCode.OK; response.Content = new …

5
WebAPI 2のDefaultInlineConstraintResolverエラー
Web API 2を使用していますが、ローカルボックスでIIS 7.5を使用してAPIメソッドにPOSTを送信すると、次のエラーが発生します。 The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'. Line 21: GlobalConfiguration.Configuration.EnsureInitialized(); 私のAPIはいずれもIISを使用して動作しません。ただし、IIS Expressを使用してVisual StudioでAPIプロジェクトを実行し、ログインAPIにPOSTを正常に実行できますが、別のAPI呼び出しに対してGET要求を実行しようとすると、制約リゾルバーエラーが発生します。 これをトラブルシューティングするために、Visual Studioで新しいWeb API 2プロジェクトを作成し、既存のAPIを一度に1つずつ新しいプロジェクトにインポートし、それらが実行されるように実行しました。この新しいプロジェクトでIIS Expressを使用すると、既存のAPIプロジェクトで行ったのとまったく同じ結果が得られます。 ここで何が欠けていますか?新しいプロジェクトでも、この制約リゾルバーの問題に遭遇しない限り、GETリクエストを行うことはできません。
140 c#  asp.net  api  iis  asp.net-web-api 

6
ASP.NETでWebAPIまたはMVCを使用してJSONを返す
クライアントスクリプトが重いASP.NET MVCアプリケーションを構築しています。JSONとjQueryを使用してDOMを操作します。 私の理解では、Web APIコントローラーとMVCコントローラーの両方がJSONを返すことができます。 私のシナリオでは、Web APIコントローラーまたはMVCコントローラーを使用する必要がありますか?

8
Json.Netでシリアル化するときにカスタムのDateTime形式を指定する
ASP.NET Web APIを使用して一部のデータを公開するAPIを開発しています。 APIの1つで、クライアントは日付をyyyy-MM-ddフォーマットで公開することを望んでいます。GlobalConfiguration.Configuration.Formatters.JsonFormatterこれはこのクライアントに非常に固有であるため、グローバル設定(など)を変更したくありません。そして、私はそれを複数のクライアントのためのソリューションで開発しています。 私が考えることができる解決策の1つは、カスタムを作成しJsonConverterてから、それをカスタム書式設定を行う必要があるプロパティに置くことです 例えば class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get;set;} } それを行う簡単な方法が他にあるかどうか疑問に思っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.