問題タブ [contract-first]
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.
web-services - 最初に契約するか、最後に契約するか、どちらが Web サービスへのより良いアプローチですか?
Web サービスを開発するためのより良いアプローチはどれですか。最初に契約するか、最後に契約するか
それぞれの長所と短所は何ですか?
あなたはどちらの経験がありますか?
編集 この質問は、Web サービスの実装に関するものです (読み取り: SOAP)。問題は、実装クラスを最初にコーディングし、そこから WSDL および XSD スキーマを生成するか (最後にコントラクト)、または WSDL および XSD スキーマを最初に記述し、生成された実装クラス (コントラクトが最初)
.net - WCF を使用したコントラクト ファースト SOA
この質問は、特定の対象を絞った質問というよりも、実際の状況でコミュニティで人々が何をしているかを発見するための調査です。私はこれについてかなり広範囲に検索しました。多くのブロガーがコントラクト ファースト サービス設計を提唱し、それらを裏付けるいくつかのコメントを見つけましたが、WCF でのコントラクト ファーストの実装、長所と短所に関する実用的な情報をまだ見つけていません。私は最近、主に Thomas Erl の著書を通じて SOA について大規模な調査を行いましたが、彼が提唱する主要な概念の 1 つはコントラクト優先設計です。
私の質問は次のとおりです。
- .NET と WCF を使用してコントラクト ファーストのサービス設計にどのようにアプローチしますか?
- コントラクトからクライアントとサービスの両方を生成できる svcutil 以外のツールはありますか? (VSと統合できるものなら何でも理想的です)
- コントラクト ファースト デザインと wCF に関して、実際にどのようなプロに出会ったことがありますか?
- コントラクト ファースト デザインと WCF に関して実際に遭遇した短所は何ですか?
コントラクトファースト開発の主な問題の 1 つは、ツールにあるようです。Svcutil は、コントラクトからサービス コードを生成できる唯一のものであり、出力がかなり貧弱です。その単一ファイルには、属性とコード生成アーティファクトがぎっしり詰まっており、基本的に、コントラクトが更新されるたびに再生成して置き換える必要があります。私はより良いアプローチ、できればregen-replaceを必要としないものを好むでしょう。実際のシナリオで実用的であると仮定して、サービス側のコントラクトを手動で作成しても問題ありません。
編集:
WCSF は当面のニーズを解決してくれましたが、 Protocol BuffersとService Factoryについて学ぶことはどちらも興味深いツールであり、将来役立つと確信しています。
.net - WSDL からのサービス コントラクトの生成
ServiceContract (OperationContract、DataContract) を生成するために必要な WSDL があります...
ASMX WebServicesでそれを行う方法を見つけましたが、WCF でそれを行う方法が見つからないようです。
走ってみました
しかし、結果のインターフェースは入ってくる呼び出しを逆シリアル化しないので、サービス実装へのすべての要求パラメーターはnull
wcf - WCFコントラクトは文字列値を制限します
プロジェクトのいくつかのWCF契約を定義しています。
あるケースでは、ステータスフィールドを送信したい場合があります。これをテキストとして送信するだけです。
- これらのx文字列値のみが許可されることをWCFコントラクトで指定できますか?
- 列挙型を使用する方が良いでしょうか?
JavaWebサービスと相互運用します。
c# - コントラクトファーストの実装方法
私は、Web プッシュ経由でデータを提供するサードパーティのサプライヤーと協力しています。
彼らは、彼らの Web プッシュはコントラクト優先の Web サービスに依存していると述べており、私が開発するために WSDL を利用できるようにしました。
この WSDL を取得して Web サービスに変換するには、どのような手順が必要ですか? 私はそれを試してみましたが、私のサービスはそれにヒットしたデータを登録しません。
これは少し曖昧だと思いますが、この「コントラクトファースト」全体は私にとってまったく新しいものです。
前もって感謝します
ジョン
wcf - WSDL パーサーは、要求/応答操作の void メソッドを生成することをどのように決定しますか?
私はこれに 5 時間を費やしましたが、このコントラクトファーストの仕様 (「アグレッシブな」締め切り、つまりばかげた) を書くのにすでに 30 時間かかりましたが、何が欠けているのかわかりません。
障害が予想されるため、一方向の操作は必要ありません。私はすでに単純な WCF サービスを構築し、それが生成する WSDL を調べました。それはvoid メソッドへのラウンドトリップを行いますが、私はそれを長い間見つめてきました (そして WSDL 1.1 は最高の時でも非常に面倒です - 2.0 にロールバックします)お願いします)手品が何なのか、もう見えません。
魔法を説明する非常に単純な WSDL を提供できる人はいますか? この WSDL では、jax-ws 2.2 と WCF 3.5/4.0 の両方をターゲットにしています。私は WSDL を手書きしており、(Java または .net で) プロキシを構築しようとするたびに、常に戻りメッセージを含むメソッドを構築します。私はそれを失っています。
wcf - *.xsd ファイルから C# コードを生成し、WCF サービスとして使用する
アップデート
*.xsd ファイルに基づいて、WCF サービスとして使用する C# クラス ファイルを生成したいと考えています。どうすればそれを達成できますか?
rest - ジャージーとのコントラクトファーストアプローチ
私は現在、JERSEY を使用して既存の REST サービスを使用してプロジェクト API レイヤーに取り組んでいます。初期サービスのほとんどは、jaxb アノテーションなどを利用したコントラクト ラスト アプローチで作成されます。最近、他のクライアントにスキーマを提供することでサード パーティとの統合を容易にするバージョン管理の問題から、代わりにコントラクト ファースト アプローチを行うように依頼されました。
コントラクト ファースト アプローチに関連して私が見つけたもののほとんどが SOAP の例を示しているため、誰もが REST を使用したコントラクト ファースト アプローチに関する有用なリソースまたは読み物を提供できますか。
ありがとう
wcf - WSDL が doc/lit/wrapped であることを WCF データ コントラクト シリアライザーに納得させる方法
私はhttp://blogs.msdn.com/b/donsmith/archive/2006/10/06/handcrafting-wcf_2d00_friendly-wsdls.aspxのガイダンスに従って、WCF svcutil が信じる WSDL を作成しようとしました。ドキュメント/リテラルのラップ形式。その際、svcutil は、データ コントラクト シリアライザーを使用するサービス インターフェイスとプロキシ コードを C# で生成し、ラッパー操作で OperationContractAttributes を生成する必要があります。代わりに、BlahResponse クラスにネストされた BlahResponse1 クラスで奇妙な二重ラップが発生し、svcutil は WSDL がラップされておらず、OperationContract ではなく MessageContract を作成することを通知します。
サービス利用者がコードを読みやすくするために、BlahResponse1 クラスを取り除き、WSDL がラップされていることを svcutil に納得させたいと考えています。どうやってそれを行うのですか?多分また、どうやってそれをしないのですか?
データ コントラクトになるスキーマのすべての要素ではなく一部の要素に nillable="true" を設定するという提案を見てきました。どちらが nillable であるべきで、その理由は? nillable="true" の設定が悪い場合、nillable ではない要素が必要になることはありますか?
上記のリンクが示唆するように、スキーマを 2 つの名前空間に分割しようとしましたが、うまくいかないようでした (または、別の問題によってマスクされていました)。スキーマの名前空間、インポートとインクルード、および宣言の順序について重要なことはありますか?
スキーマ/WSDL を含めますが、これらは一種の独自仕様です。また、非常に大きく、多くのファイルに分散しています。
java - WADL のトラブル/コントラクト ファーストのアプローチで Jersey を使用して生成された XSD
私はここ数日間、Jersey を使用して REST Web サービスに取り組んでおり、XML、JSON、Google Protobuf などのいくつかの交換フォーマットを使用して、すべての CRUD 操作を機能させることができました。
ただし、自動生成された WADL と XSD に関連するいくつかの問題に直面しています。
環境
これら 3 つの形式で交換されるオブジェクトを定義するために、「コントラクト優先」アプローチに従いました。
- 私が作成した XSD から、JAXB を使用してモデル クラスを生成しました。
- 私が書いた同等の proto ファイルから、Google Protobuf クラスを生成しました (そして、1 つの固有のモデルを持つために、これらを JAXB 生成オブジェクトに内部的に変換する方法があります)。
ただし、ユーザーにもクラスを生成できるようにしたいので、これらのスキーマ ファイル (.xsd および .proto) を共有し、自動生成された WADL とうまく統合したいと考えています。
そのために、このwiki ページに感謝します。
- 下の2つのファイルを公開しました
/schema/schema.xsd
/schema/schema.proto
アプリケーション文法ファイルを追加しました:
/li>カスタマイズされた WADL ジェネレーターを追加しました。
/li>
このようにして、ヒットすると、WADL に以下が表示されます/rest/application.wadl
。
問題
/rest/application.wadl/xsd0.xsd
は私のクラスから自動的に生成されますが、私が最初に持っていたものとはかなり異なりschema.xsd
ます。それに加えて、wadl2java
この WADL のようなツールを呼び出すと、おそらく次の理由で、惨めに失敗します。
/schema/schema.xsd
、 と/rest/application.wadl/xsd0.xsd
が競合しています (同じオブジェクトに対する 2 つの定義)。
質問
この自動生成された XSD の生成と拡散を無効にする方法はありますか? (この「コントラクトファースト」アプローチに従っているので必要ないため)
/rest/application.wadl/xsd0.xsd
そうでない場合、ヒットしたときに手動で作成した XSD でコンテンツを「オーバーライド」する方法はありますか? (カスタマイズされた WADL を生成するためにググって WadlResource について調べましたが、XSD 生成自体については何も見つかりませんでした)
よろしくお願いします。
M.
編集
1) ジャージー チームに問題を提起したところ、返信がありました: http://java.net/projects/jersey/lists/users/archive/2012-06/message/8
2) Pavel の指示に従って、チケット (JERSEY-1230) を発行しました。私は現在、自分で修正を送信するか、Jersey チームから修正を入手するためにフォローアップしています。