1

ベスト プラクティスについて質問があります。従業員 ID と従業員名を返す Web メソッドがあるとします。さて、私は Web サービスに慣れていないので、私たち (クライアント (C#) と私 (Java)) は戻り値の型List<String>と文字列形式に同意しましたemployee id,employee name。これまでのところ、すべて順調です。プログラムが実行され、ジョブが実行されます。

さて、先日、別の開発者と戻り値の型について話し合っていたところ、データを返す方法が正しくなく、代わりに XML 形式で String を返す必要があるので、典型的な出力は次のようになると提案されました (ここでは書式設定なし)。

 <root><employee><employeeId>1234</employeeId><employeeName>firstname lastname</employeeName></employee></root>

この場合、50% 以上の非データ (XML タグ) をクライアントに返すことは不要であり、帯域幅を浪費し、オーバーヘッドを増加させると主張しました。そして、彼女は、ユーザーが何かにアクセスする権限を持っていない、または返すものが何もないなどの明白でないシナリオの場合、サーバーでエラーコードまたは何かがうまくいかなかった、つまり、実際のデータ自体以外のものを返す必要がある場合、 XML文字列はタグを挿入できるので便利です。そして、それは有効な議論なので、Web サービスの経験が豊富な人がここでいくつかの光を当てることができますか?

4

1 に答える 1

0

基本的に、リストがシリアル化されると、フォーマットは次のようになりますが、XML に変換されます。

<Value>EmployeeId, EmployeeName</Value>

タグは実際には不要ではなく、データを保持し、具体的なデータ型であるため、実際に役立ちます。エラーが発生しやすく、常に文字列の値を更新する必要があるため、XML 文字列を返すのは好きではありません。私が提案するのは、結果セットとエラー説明プロパティを含むオブジェクトを返すことです。

public class ReturnObject
{
   public List<Employee> list {get; set;}
   public String ErrorDescription {get; set;}
}

public class Employee
{
   public int EmployeeID {get; set;}
   public string EmployeeName {get; set;}
}

ここで、Web サービスは、検証または認証エラーを返す必要がある場合に使用できる追加のプロパティ 'ErrorDescription' を持つ具象型を返します。SoapUI を使用して、シリアル化された戻りオブジェクトが XML であることをテストします。

于 2013-06-05T04:08:09.107 に答える