0

よく知らないサービスからデータをフェッチしようとしています。

だから私は http://ABC.com/ABC.svcのようなURLを取得しました

だから私は http://ABC.com/ABC.svc/ $metadataとしてメタデータを取得することを考えています

それは私に与えます:

<EntityType Name="E1">
- <Key>
<PropertyRef Name="E1k1" /> 
</Key>
< Property Name="E2" Type="Edm.String" Nullable="true"
 m:FC_TargetPath="SyndicationTitle" ..>


<ComplexType Name="OptionV1">
<Property Name="Value" Type="Edm.Int32" Nullable="true" /> 

... and a lot more.

ABC.svc/??? の次に来るものを見つけるにはどうすればよいですか???

データにアクセスするためのクエリを書きたい。次のステップを教えてもらえますか? メタデータからのこのクエリ生成に関する学習リソースは、役に立ちます。

ありがとう

4

2 に答える 2

1

LinqPadは、OData サービスを開始するための非常に簡単な手段を提供します (LINQ にある程度精通していることを前提としています)。このアプリケーションを主に .NET から使用する場合は、このアプリケーションから始めることをお勧めします。これを $metadata エンドポイントにポイントすると、プレーン オールド .NET アプリと同じように OData サービスを操作できるプロキシ クラスが生成されます。[結果ログ] タブに、OData サービスのクエリに使用される URL が出力されます。これを取得して、Fiddlerで微調整できます。(OData + Fiddler の使用方法の詳細については、このブログ投稿を参照してください。)

主に JavaScript から OData サービスを使用する場合は、URI 規則をよりよく理解することから始めるか、data.jsをいじってみるとよいでしょう。

于 2012-07-05T14:53:40.003 に答える
1

次の 2 つの方法があります。

1) サービスドキュメントを使用する。サービスから利用可能なエンティティ セットの名前を含む ATOM サービス ペイロードであるサービス ドキュメントを返す必要がある ABC.svc に移動します。そのようなサンプルについては、 http://services.odata.org/OData/OData.svc/にアクセスできます。これにより、3 つのコレクション (エンティティ セット) を含むドキュメントが返されます。href 属性は、エンティティ セットへの相対 URI です (通常はサービスのベースである xml:base に相対します)。たとえば、サービスにエンティティ セット E1Set がある場合、通常、そのアドレスは ABC.svc/E1Set になります。

2) $metadata ドキュメントを使用し、通常のアドレス指定スキームを想定します (これは通常、サービスに適用されますが、必ずしもそうである必要はありません)。$metadata ドキュメントはエンティティ セットを定義します。これらは通常、サービスによって公開され、通常は ABC.svc/EntitySetName のアドレス指定スキームに従います。

エンティティ セットに移動すると、そのセット内のエンティティを含む ATOM フィードが返されます。$metadata は、エンティティの形状と関係を認識するのに役立ちます。

一部のサービスには、サービス操作またはアクションなどもあります。これらは、サービス ドキュメント #1 では公開されていません。代わりに、FunctionImport 要素として $metadata にのみ表示されます。通常は、ABC.svc/FunctionImportName のアドレス指定スキームに従います。ただし、サービス操作を呼び出すには、サービス操作について詳しく知る必要がある場合があることに注意してください (使用する HTTP 動詞、パラメーター、動作など)。

于 2012-07-05T10:14:10.703 に答える