簡體   English   中英

是否有用於從odata元數據生成客戶端模型的工具?

[英]Are there tools for generating the clients model from an odata metadata?

回顧Flex的美好時光(有人嗎?),Flash Builder提供了一種用於基於服務器模型生成客戶端模型的工具。 例如,根據余地數據元數據生成余燼的應用程序模型,是否有類似的東西?

datajs文檔確實提到了該主題 盡管示例中使用的對OData.read的引用沒有明確說明它以某種方式解釋了元數據,但這似乎是隱含的。 您必須進行驗證。

但是,它確實需要一個可選的元數據對象,這表明該庫存在元數據的正式表示形式-我想可以通過OData.read生成。 文件似乎不存在。 我不知道那是什么樣子。

從那里,您應該能夠進一步將模型轉換為適合Ember的模型。

(datajs是實現客戶端OData操作的低級JavaScript庫。)


我還知道JayStack提供了JaySvcUtil ,這是一個CLI程序集(.NET程序),用於提取元數據。 目標格式是JavaScript代碼,盡管它使用的模型特定於JayData 不過,您也許可以從那里開始工作。


如Maya所述,Microsoft提供了OData客戶端代碼生成器 ,該生成生成.NET代理。 可能很難改變它。


如果這些都不適合您(實際上是有可能的),則您始終可以自己解析$metadata資源-我相信它在所有當前版本的OData中始終使用XML表示形式。

如果需要在瀏覽器中動態地執行此操作,請使用DOMParserXMLHttpRequest 更多信息

如果您可以靜態地進行操作,則一定要這樣做-最好是提高性能。 在這種情況下,您可以使用想要獲取,解析,轉換和重新序列化模型的任何語言和運行時工具。

此處 (v4)和此處 (v3)為OData指定了格式(CSDL)。


最后,查看此列表 ,可能會出現一些更符合您需要的新內容。

有兩個建議可能會對您有所幫助。

1,OData提供客戶端代碼生成器來生成客戶端代理類。 只需傳遞元數據url,即可為您生成.net客戶端代碼。 您可以關注以下博客: http : //blogs.msdn.com/b/odatateam/archive/2014/03/11/how-to-use-odata-client-code-generator-to-generate-client-side -proxy-class.aspx

2,如果模型的意思是“ EdmModel”,則可以反序列化$ metadata。 OData閱讀器可以將$ metadata反序列化為IEdmModel,可以在客戶端使用。 以下是示例代碼:

HttpWebRequestMessage message = new HttpWebRequestMessage(new Uri(ServiceBaseUri.AbsoluteUri + "$metadata", UriKind.Absolute));
message.SetHeader("Accept", MimeTypes.ApplicationXml);

using (var messageReader = new ODataMessageReader(message.GetResponse()))
{
    Model = messageReader.ReadMetadataDocument();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM