問題タブ [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.
wcf - WCF Rest - ベスト プラクティスは何ですか?
私の最初の WCF rest プロジェクトを開始したばかりで、REST を使用するためのベスト プラクティスについてのヘルプが必要です。
私はいくつかのチュートリアルを見てきましたが、物事を行うにはいくつかの方法があるようです...たとえば、POST を実行する場合、HttpStatusCodes (OK/Errors など) を設定しているいくつかのチュートリアルと、それらが設定されている他のチュートリアルを見てきました。操作の結果を含む文字列を返すだけです。
結局のところ、4 つの操作があり、GET を実行している場合はこのように実行し、POST を使用している場合はこれを実行するように指示するガイドが必ずあるはずです...
どんな助けでも大歓迎です。
JD
c# - AppHarbor の MVC3 内で WCF WebAPI Prev 6 を実行すると、404 エラーが発生する
今夜、AppHarbor で簡単な WCF WebAPI プロジェクトをまとめようとしていたところ、いくつかの問題が発生しました。WCF API は、WCF CodePlex サイトでデモされているように、空の MVC3 プロジェクト内に配置されています。https://github.com/jptoto/Postmark-Response-Code-Generator API 自体は非常に基本的なもので、URL の末尾に http 応答エラー コードを入力すると、応答は適切なエラー コードになります。したがって、たとえば、Fiddler またはその他の http クライアントでhttp://responsecodes.appharbor.com/api/response/405を使用すると、405 エラーに対して適切なエラー応答が返されます。(この API は、適切なエラー応答でテストするための便利な方法です)。
とにかく、何を試しても、AH から 404 エラーが発生します。ルーティングが何に対して機能していないのかわかりません。ビルドされたコードを AH からダウンロードして IIS 内でローカルに実行すると、正常に動作します。問題はありません。
AH が WebAPI Preview 6 にある何らかの種類のルーティングをサポートしていない場合は問題ありません。すべての拠点をカバーしたいだけです。ありがとう!!
rest - WebAPIコンシューマーに応答の新しいフィールドを受け入れるように強制する
既存のRESTfulWebAPIのv2を作成しています。
応答は、オブジェクトのJSONリストであり、大まかに次の形式です。
v1で観察された問題の1つは、一部のクライアントが名前ではなく整数の位置でフィールドにアクセスすることです。これは、応答にフィールドを追加することを決定した場合(当初は互換性を維持する変更と見なしていた)、最後にフィールドを追加しない限り、クライアントのコードの一部が壊れることを意味します。それでも、他のクライアントのコードは、予期しない属性名に遭遇すると何らかの方法で失敗するため、とにかく壊れます。
v2でこれに対抗するために、すべての応答でフィールドをランダムに並べ替えることを検討しています。これにより、クライアントは位置ではなく名前でフィールドにインデックスを付けるように強制されます。
さらに、すべての応答にランダムな名前のフィールドを追加することを検討しています。これにより、クライアントは認識できないフィールドを無視するようになります。
これはやや厄介に聞こえますが、新しいフィールドを追加できるという利点があります。これにより、クライアントが破損することはありません。これは、同じURLでv2.1、v2.3などに互換性のある更新を発行できることを意味します。つまり、少数のAPIバージョンを維持およびサポートするだけで済みます。
別の方法は、互換性を破るv3、v4を新しいURLで発行することです。これは、互換性のない多くのAPIバージョンを維持およびサポートする必要があることを意味します。これにより、少し薄くなります。
これは悪い考えですか?もしそうなら、なぜですか?私が考えるべき他の同様のアイデアはありますか?
更新:最初のいくつかの応答は、問題を文書化した場合(つまり、フィールドが追加または並べ替えられる可能性があることをドキュメントに示した場合)、後でフィールドを追加または並べ替えたときにクライアントコードが壊れても責任を負わないことを指摘しています。残念ながら、これは私たちにとって適切なオプションではないと思います。何十もの組織が、実質的な経済的影響を伴う実際のトランザクションのためにAPIの機能に依存しています。これらの組織は技術指向ではありません。クライアント側での実装は、技術的な熟練度の全範囲をカバーします。私たちはすでにしましたv1のドキュメントでフィールドが追加または並べ替えられる可能性があり、明らかに機能しなかったというドキュメント。時間、経験、能力の不足により、多くのクライアントがまだ壊れたコードを記述しているため、v2を発行する必要があるためです。新しいフィールドを追加するとき。私が今インターフェースにフィールドを追加するとしたら、それは私たちへの十数の異なる会社のインターフェースを壊します、それは彼ら(そして私たち)が毎分お金を出血させていることを意味します。「彼らはドキュメントを読むべきだった!」と言って、変更を元に戻すことや修正することを拒否した場合、私はすぐに仕事を辞めます。「失敗した」パートナーを教育しようとするかもしれませんが、私たちが成長し続けるにつれて問題が毎月大きくなるため、これは失敗する運命にあります。私の質問は、パスで問題全体を体系的に先送りし、この状況が発生するのを防ぐことができるかということです。クライアントが何をしようとしても?私が提案するテクニックがうまくいくのなら、なぜ私はそれらを使うべきではないのですか?なぜ他のみんながそれらを使用しないのですか?
search - ウェブ検索ヒット数
約のサイズの検索クエリのセットがあります。1000万。目標は、検索エンジンによって返されたすべてのヒット数を収集することです。たとえば、Google はクエリ「stackoverflow」に対して約 47,500,000 を返します。
問題はそれです:
1- Google API は、1 日あたり 100 クエリに制限されています。多くのカウントを取得する必要があるため、これは私のタスクにはあまり役に立ちません。
2- Bing API を使用しましたが、正確な数値が返されません。Bing UI に表示されるヒット数と一致するという意味で正確です。以前にこの問題に遭遇した人はいますか?
3- 検索クエリを検索エンジンに発行し、html を解析することは 1 つの解決策ですが、結果は CAPTCHA になり、この数のクエリには対応できません。
私が気にかけているのは、ヒット数だけであり、どんな提案も受け付けています。
wcf-web-api - ASP.NET Web API バインディング メソッド
このような2つの方法があります
URL を呼び出すと: GET http://localhost/api/product/1。2 番目のメソッドではなく、最初のメソッドが呼び出されるようにします。
どうやってやるの ?
c# - WCF 対 ASP.NET Web API
WCF の背後にある概念を把握するために数か月を費やし、最近、初めての WCF サービス アプリケーションを開発しました。
構成ファイルのすべての設定を理解するのにかなり苦労しました。
私は環境について確信が持てませんが、あなたはそれで素晴らしいことができるようです.
先日、Microsoft がASP.NET Web APIという新しいものを発表したことを知りました。
私が読むことができるのは、RESTful フレームワークであり、使用と実装が非常に簡単です。
現在、2 つのフレームワークの主な違いと、古いWCF サービス アプリケーションを新しい API に変換する必要があるかどうかを理解しようとしています。
誰かが、それぞれの違いと使用法を理解するのを手伝ってくれませんか?
.net - Web API コントローラーとサイト コントローラーを混在させる
mvc 4 ベータ版の新しい wep API をいじり、既存の mvc サイトにいくつかの新しい API コントローラーを追加しています。問題は、Web API コントローラーに既存のコントローラーと同じ名前を付けられないことです。今のところ、ProductApiController のような名前を付けていますが、それはあまり安っぽいものではありません。これらの新しいコントローラーを既存の mvc サイトに追加するときに、これらの新しいコントローラーに名前を付けるための適切な戦略は何ですか?
odata - ASP.net MVC 4(web api)OData構成
(シングルページアプリ)BigShelfサンプルで遊んでいます。私が本当に興味深いと思ったのは、GetBooksForSearchメソッド(/ api / BigShelf / GetBooksForSearch)であり、コントローラーコードには存在しない、結果のページングとフィルタリングのために追加の、、、パラメーターを取り$filter
ます$inlinecount
。$top
$skip
そのコントローラーが後で結果を変換してフィルター処理する方法、さらに重要なことに、そのような動作を構成する方法(たとえば、最大結果を制限する方法)についてのドキュメントは見つかりませんでしたが、誰かが手がかりを持っていますか?
- 更新しました -
MVCWebAPIがそのトリックを実行していることがわかりました。しかし、どうすればそれを構成できますか?
asp.net - ASP.Net Web API と WCF - Web API を使用して、REST ベースの通信をシングルトン WCF サービスに提供できますか?
既存のシングルトン WCF サービスのセットがあります。これらは、継続的に多くの作業を行い、他のプロセスとの通信のために WCF サービス コントラクトを使用して自身を公開する長期実行プロセスです。
WCF Web API が開発されていたとき、私はわくわくしていました。最終的に面倒なコントラクトのすべてを取り除き、プラットフォームに依存しない REST API を各サービスに提供し、プロセスを介して通信させることができるように見えたからです。 HTTP リクエストと JSON レスポンス。
現在、Web API は IIS でホストされる ASP.Net 機能になっているようです。何かが欠けているだけなのか、それとも WCF サービスで REST インターフェイスを提供する機会がなくなったのかを突き止めようとしています。
Web API が私のシナリオの対象ではなくなった場合、ASP.Net チームは、HTTP/JSON ベースの API を他の消費プロセスに提供したい終了しないシングルトン プロセスに関して何を想定していますか?
asp.net-mvc - ASP.NET Web-API が読み取り専用プロパティをシリアル化しない
API メソッドを標準 MVC アクションから新しい asp.net Web-API ベータ版に移行したところ、突然、読み取り専用プロパティがシリアル化されなくなりました (どちらも JSON を返します)。これは予想される動作ですか?
編集:コードサンプルを追加
nuget パッケージを介して Newtonsoft.Json 4.0.8 と System.Json 4.0 の両方を参照しています