問題タブ [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.
http - OpenRasta は PUT でエンティティを適切に逆シリアル化できません
OpenRasta ハンドラーで HTTP PUT を処理しているときに、非常に奇妙な動作が発生します。ハンドラー メソッドのシグネチャは次のようになります。
そして、ここに関連するResourceSpace
構成があります:
CustomerForm
次のようになります。
ContactInfo
次のようになります。
私の問題はCustomerForm
、サーバーに PUT するときに、OpenRasta が適切にデシリアライズできないことです。クライアントから正常に送信されますが、ContactInfo
セットを使用してデシリアライズします。必要な XML が実際にそこにあることを確認するためにnull
、IRequest.Entity.Stream
メソッドで受信しIRequest.Entity.Stream
た逆シリアル化CustomerForm
されたオブジェクトが含まれていないときに、必要なデータをどのように含めることができますか? Put(CustomerForm)
シリアライゼーションとデシリアライゼーションが完全に機能することを確認するテストがありPost(CustomerForm)
、まったく同じハンドラーでも機能します。に設定されCustomerForm
ているのは、HTTP メソッドが PUT のときだけです。ContactInfo
null
私は OpenRasta からのデバッグ出力を徹底的に読みました。
私が見つけた唯一の奇妙な点は、このステップの直後にa が aMissingMethodException
としてスローされる(ただしバブルアップしない) ことですが、そのスタック トレースが非常に短いため、何が問題なのかわかりません。FirstChanceException
なぜ a がスローされているのか、イベントにMissingMethodException
サブスクライブしないとバブルしないのかはわかりませんが、正しく逆シリアル化されていない理由に関連している可能性があります。ただし、HTTP POST では正しくデシリアライズされるため、疑問があります。AppDomain.FirstChanceException
CustomerForm
アイデア?
c# - OpenRasta-リソースURIが正しくない場合に返される不正なステータスコード
.netサービスでOpenRastaフレームワークを使用しており、ハンドラーに次のようなメソッドがあります
私の構成は次のようになります。
私のリクエストは以下のように組み立てられています
リソースパラメータを確認してください。deleteメソッドは整数を受け入れますが、文字を渡します。
このリクエストでは、代わりに404ステータスコードを期待していましたが、405メソッドは許可されていません。誰かがこの振る舞いを説明できますか、なぜそれが405を返すのですか?
URIに間違ったリソース名を指定すると、404が返されます。例:URI:http://localhost/OtherResource/a
更新:OpenRastaのInMemoryHostを使用してこれをテストしており、Deleteメソッドがサポートされています
iis - IIS 7.5 + RESTFul サービスの PUT および DELETE を有効化、拡張なし
IIS 7.5 が POST および PUT 要求を処理する方法を理解しようとしています。
OpenRasta フレームワークを使用して RESTful サービスを作成しています。POST 操作は問題なく機能しますが、同じ URL に対する PUT 操作は機能しません。以下のようなエラーを返します
URLは「http://localhost/MyService/Resource.Something.manifest」に続くこのようなものです
Visual Studio 開発 IIS でも同じ設定で問題なく動作します。
解決
基本的に、デフォルトの ExtensionlessUrlHandler は PUT および DELETE 動詞を受け入れません。それらを追加するだけです。
c# - カスタム認証 OpenRasta
こんにちは、トークンベースの認証を持つアプリケーションを構築しています。
http://www.host.com/resource?token=589437534
私はインターセプターか何かを書くつもりでしたが、私が見つけられなかったもっとエレガントなものがあると思います。
この種の認証を OpenRasta で実装する最良の方法は何ですか?
c# - 応答リソースのクラスのプロパティを無視する-Openrasta
Openrastaフレームワークを使用しています。APIで使用される単純なPOCOがあり、これはResponseResourceとしてクライアントに送信されます。以下のようになります。
ユーザーに応答を送信するときに、プロパティ「Id」をユーザーに送り返したくありません。このプロパティを無視するようにopenrastaシリアライザーを作成するにはどうすればよいですか?このプロパティにXmlIgnore属性を設定しようとしましたが、機能しませんでした。
何か案は?
streaming - OpenRastaストリーミング応答
オブジェクトを応答リソースとして返すのではなく、OpenRastaで応答ストリームに書き込むことができるかどうか誰かが知っていますか?または、HTTPハンドラーを実装しても、OpenRastaのURL書き換えを利用できますか?
ありがとう
クリス
rest - サブ要素にアクセスする OpenRasta
Person ---> Subject (1 to many) のようなサブジェクトのコレクションを持つ人のデザインがあります。
Id が 1 ( http://localhost/person/1
) の人にアクセスすると、その人のすべての詳細とコレクションの詳細が表示されます。
個人のサブジェクトにアクセスするだけの URL を設計するにはどうすればよいですか? それはすべき
http://localhost/person/1/subjects
ですか?件名を追加するためにその URL に投稿できますか? 件名を更新するためにその URL にアクセスできますか?
個人のサブジェクトを処理するハンドラーはどれですか? Get と personid パラメーターを持つサブジェクト ハンドラーにするか、サブジェクトの戻りメソッドでサブジェクトのコレクションを返すパーソン ハンドラーにする必要がありますか?
routes - OpenRastaルートの制約
/ Person/1と/Person/Blairで人を取得できるようにしたい場合どうすればよいですか。
構成クラス:
とハンドラー
asp.net mvcのような制約を使用する方法はありますか?
どんな助けでもいただければ幸いです。
rest - OpenRastaを使用してリソースにアイテムを安らかに追加する
OpenRastaを使用してSurveyアプリケーションを作成しています。
/ Surveys / {id}でアクセスでき、/ Surveys / {id}/editで編集可能なSurveyResourceがあります。
アンケートのポイントなので、アンケートに質問を追加したいと思いますが、これを行う最も安らかな方法と、ORでの設定方法がわかりません。
QuestionResource(質問の種類や質問のテキストなどの詳細が含まれている)が必要で、/ Surveys / {id} / questionに投稿して質問ハンドラーで処理する必要があると思いますが、作業できませんORの構成方法について説明します。
プロジェクトをhttps://github.com/oharab/OpenSurvey/tree/add_question_to_surveyのgithubにプッシュしました
誰か助けてもらえますか?
ベン
openrasta - OpenRasta-エラーをHTMLではなくJSONとしてエンコードする
OpenRasta.Coreには、ハンドラーが例外をスローしたときに送信されるサーバーエラーページのレンダリングを担当するHtmlErrorCodecがあることに気付きました。
例外スローハンドラーに対してJSONAjaxリクエストを行うと、このコーデックが選択され、例外がHTMLとしてレンダリングされます。
自分のIMediaTypeWriterをIList<Error>にMediaType( "application / json")で登録しようとしたので、JSONをブラウザーに送り返すことができますが、無視されているようです。誰か助けてもらえますか?
ありがとうニール