問題タブ [openrasta]
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.
c# - OpenRastaハンドラーで例外を処理する場合、応答に変換するための最良の方法は何ですか?
私はOpenRasta2.0を使用してRESTAPIを構築しており、その拡張性は素晴らしいです。たとえば、DotNetOpenAuthを使用してOAuth認証をプラグインすることは非常に簡単です。
ただし、エラー状態に対する応答を定義する必要があるところまで来ました。HTTPエラーコードに関する標準を採用していますが、Twitter(RESTの長年の例)とほぼ同じように、意味のある応答も返すことを意識しています。
すべてのハンドラーからOperationResultを返し、例外を手動でキャプチャしてResponseResourceにマップするための最良の方法はありますか?これは、OpenRastaの他の部分がどのように機能するかと比較すると、かなりのオーバーヘッドのように思えます。
または、パイプラインでスローされた例外をキャプチャし、問題をグローバルに処理するために、ある種のコントリビューターを作成する必要がありますか?おそらく、特定のタイプの例外のみを変換します(RestException?)。
基本的に、私はこれのベストプラクティスが何であるか、そして他の人がそれをどのように扱ったかについての感覚を求めています。
ありがとう。
編集:
今日しばらくこれを見た後、ハンドラー呼び出しをラップする方法を理解するのに苦労しています-私は自分自身をOperationInterceptor派生クラスと宣言し、それをパイプラインにフックしてResourceSpace.Uses.PipelineContributor<OperationInterceptorContributor>()
カスタム依存関係を設定しましたResourceSpace.Uses.CustomDependency<IOperationInterceptor, ExceptionHandlerInterceptor>(DependencyLifetime.PerRequest)
が、どちらに関係なく私が試し、try-catchでラップするメソッドのうち、例外はまだバブルです。
それはRewriteOperation
、BeforeExecute
またはAfterExecute
それがトラップするのに最も適切な場所ですか?もしそうなら、どのように始めるかについての手がかりを私に与えることができますか?
ありがとう。
file-upload - OpenRastaとIMultipartHttpEntityを使用したmultipart/form-dataでのアップロード
OpenRastaを使用していくつかのファイルを投稿しようとしています。ハンドラーが呼び出されるところまで到達しましたが、すべての外観で、エンティティ内のストリームは空です。これが私のハンドラーです:
ループを通過するたびに、memoryStreamの長さは0になります。何が間違っているのでしょうか。
.net - PUT を使用して OpenRasta にファイルをアップロードする
PUT ポスト メソッドを使用して OpenRasta にファイルをアップロードすることは可能ですか?
.net - OpenRasta でファイルとリソースを同時に投稿できますか?
OpenRasta で、ファイルのアップロードとメタデータの投稿 (投稿本文) を同時に行うことはできますか? もしそうなら、これを行う方法の例はありますか?
rest - 次のシナリオで RESTful インターフェイスを作成するにはどうすればよいですか?
Media という名前のリソースがあり、これには多くのプロパティ (Name、MediaType、MetaData、File) があります。Media リソースには、物理ファイルも保持されます。ここで、メディア リソース (メタデータ) の詳細の一部がファイルから収集されます。私のシステムでは、2 つの方法で作業できます。
1) Media リソースを作成し、Name と MediaType を設定してから、File をそこに投稿します (メタデータを更新します)。
現在、これは次のようにWebサービスで機能しています。
POST /rest/media (メディア リソースを作成して返す)
GET /rest/media/{id} (特定のメディア リソースを取得する)
PUT /rest/media/{id}/file (ファイルをアップロードし、メディア リソースを更新する) )
GET /rest/media/{id}/file (アップロードされたファイルを取得します)
2) ファイルをアップロードすると、Media リソースが自動的に作成され、Name にファイル名が設定され、ファイル拡張子から MediaType が自動的に計算されます。
これは、設計の助けが必要なシナリオです。両方の方法をサポートしたいのですが、これを RESTful URL 構造にマップする方法がわかりません。
私は一般的な「RESTful」な提案を受け付けていますが、OpenRasta に基づく具体的な提案があれば、それが理想的です。
iis - Webロール上のAzureRESTAPIは、Json本体を使用したPOSTを受け入れません
AzureWebロールでOpenRastaを使用して、RESTAPIを提供しています。GETメソッドは正常に機能し、Jsonデータを返します。Json本体を使用してリクエストをPOSTしようとすると、このエラーが発生します。
メディアタイプがサポートされていないため、サーバーは要求を処理できません。415コードを返します。Fiddlerでメッセージを調べたところ、問題ないように見えました。
IISが許可するように設定されていないことを推測しています->Content-Type:application / json
このhttp://msdn.microsoft.com/en-us/library/gg433059.aspxを見つけましたが、これを機能させるために何をする必要があるのかわかりません。
どんな助けでも素晴らしいでしょう。
c# - IronPythonが埋め込まれたRESTfulWebサービス:エンジンとスコープの質問
CouchDBと通信するIronPythonスクリプトを実行したいRESTfulC#Webサービス(Open Rastaを使用)があります。
いくつかの説明を使用できることの1つは、Pythonエンジンとスコープの新しいインスタンスが必要になる頻度はどれくらいかということです。アプリケーションごとに1つ?セッションごと?リクエストごと?
私は現在、コンパイルされたスクリプトの辞書とともに、アプリケーションレベルの静的エンジンを持っています。次に、リクエストごとに、新しいスコープを作成し、そのスコープ内でコードを実行します...
あれは正しいですか?スレッドセーフ?そしてそれができる限りのパフォーマンス?
編集:報奨金についてジェフに答えて私が提起した質問にも答えてください:エンジンの静的インスタンスにより、さまざまなクライアントからのシーケンシャルリクエストが順番に実行されるのを待ちますか?もしそうなら、私はおそらくリクエストごとにすべてが必要になります。
openrasta - OpenRastaでコーデックファイル拡張子を使用すると404が返されます
OpenRastaでコーデックのURIファイル拡張子を使用する場合、ORはURIを解決できず、404を返します。ファイル拡張子がないと、すべて問題なく動作します。
コーデックはオブジェクトリソース用に定義されており、XmlDataContractとJsonDataContractの両方を使用しています。.xmlまたは.json拡張子を使用しない場合、これはInMemoryHost(テストに使用)とASP.Net(IIS7、統合モード)の両方に適用されます。
コーデック構成:
uriファイル拡張子を機能させるために行う必要がある他の何かがありますか?
.net - OpenRasta で Content-Type ヘッダーの文字セットを設定する方法
JsonDataContractCodec を介してオブジェクトを JSON として返すと、OpenRasta は Content-Type ヘッダーを
アプリケーション/json
ただし、コンテンツ タイプの文字セット部分は無視されます。
Chrome を使用すると、次のヘッダーで GET リクエストが送信されます。
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3
私のutf-8でエンコードされたjsonオブジェクトはすべてうまくいきません。
OperationResult をオーバーライドしようとしましたが、うまくいきませんでした。OpenRasta は私のヘッダーをコーデックのヘッダーで上書きします。
asp.net - ReSTWebサービスドキュメント/WADLを自動生成する
ASP.NETとOpenRastaを使用してReSTWebサービスを作成しています。
私たちを助けることができるツールはありますか?
WADLファイルを作成する
または/および各リソースでサポートされているリソース/HTTPメソッドなどを記述したものと同様の人間が読めるAPIドキュメントを作成しますか?