问题标签 [odata-connected-service]

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.

0 投票
1 回答
629 浏览

odata - 有没有办法为 OData 连接服务获取 D365 Web API 的子集

我们正在使用 Dynamics 365 for Operations,我正在尝试连接到它为针对实体的 CRUD 操作而公开的 OData Web 服务。使用OData 连接服务工具,我可以创建一个连接服务参考。

当我这样做时,它会拉下服务的元数据并创建一个包含 97 万行代码的代理类。

我正在使用的网址是 https://[company url].sandbox.operations.dynamics.com/data/

当将此 URL 输入到“添加连接的服务向导”中时,它会将 $metadata 附加到此 URL 的末尾,它会拉回每个公开实体的所有元数据并基于此创建一个类。

有没有办法从 AX365 端对数据进行分区,或者以某种方式限制我在客户端的查询?我是 AX365 和 OData Connected Service 工具的新手,所以我不确定有什么可能。

0 投票
1 回答
469 浏览

c# - 如何基于共享模型(POCO 类)构建 OData 客户端?

在我的项目中,我使用的是 OData v3 和 v4(背面带有实体框架的 ASP.NET Web API)。目前我使用 Visual Studio 工具构建了一个客户端。

但是还有其他方法吗?我真的必须基于 $metadata 和工具集构建客户端吗?

是否可以通过共享库共享我的模型(合同)并构建这样的客户端:

该模型可以是一组我自己的 DTO 对象,我可以将其映射到等效的实体框架对象。

我的目标是,共享一个文档齐全的模型(源代码 XML 文档)以及附加逻辑,例如ToString实现和附加属性。此外,我节省了一个额外的步骤:生成客户端(当您在 TFS 构建服务器上自动构建和发布所有包时,这很糟糕)。

这对 OData v3 或 OData v4 可行吗?

0 投票
0 回答
158 浏览

c# - Odata 连接服务 - 如何使用它?

我目前正在尝试制作一个虚拟控制台应用程序,以了解 AX Web API 的工作原理。

我将我的 odata webservice 添加为连接服务,并且从那里不确定我如何在我的 main 中引用它或对服务进行任何 get 调用。

什么都不返回...

没有为 odata 数据定义容器类型,而是一个内容类型,即

0 投票
0 回答
59 浏览

visual-studio - Visual Studio 2017 OData 连接服务端点相对路径

我已将连接服务添加到指向本地元数据文件的 Visual Studio 2017。问题是我必须指向这个元数据文件的绝对路径,例如 C:\Users\xxxx\Desktop\$metadata.xml,但我想在 ConnectedService.json 中保留相对路径。

当我试图将其更改为类似:“端点”:“~/Connected Services/OData Service/$metadata.xml”时,

我有一个错误:

在此处输入图像描述

有没有办法在那里指定相对路径?将元数据文件保留在解决方案中并使其适用于所有队友?

0 投票
0 回答
62 浏览

xamarin.forms - DataServiceContext.ExecuteAsync 导致有关 User-Agent 标头的异常

我创建了一个 Xamarin.Forms 应用程序并添加了一个连接的 Odata 服务。现在,当我尝试向后端发送请求时,它将失败并出现异常 System.ArgumentException: The 'User-Agent' header must be modified using the appropriate property or method。参数名称:名称。

我试过的:

1:处理 DataServiceContext_BuildingRequest 并使用 e.Headers["User-Agent"] = "xyz";

2:设置 Content-Type 标头,因为我在另一个线程中读到它有帮助的地方(e.Headers.Add("Content-Type", "application/json"))

3:设置DataServiceContext.Configurations.RequestPipeline.OnMessageCreating的委托。问题是,一旦我尝试创建一个新的 HttpWebRequestMessage 实例并传入它接收到的参数,就会抛出异常。

管道代表:

我对此的怀疑是,Odata HttpWebRequestMessage 类使用的底层代码发生了一些变化,不再允许直接设置 User-Agent 标头。

有没有人找到解决这个问题的方法?

0 投票
1 回答
2576 浏览

odata - 使用 OData 连接服务在 Blazor 客户端应用程序中使用 OData

  1. 创建了一个 netstandard2.1 blazor web 程序集项目。
  2. 将 Odata 连接服务 (V.0.10.0) 添加到同一项目。
  3. 生成了 OData 代理类。
  4. 从 Razor 页面的 Task OnInitializedAsync() 方法调用 odata 服务

从 Razor 页面调用 OData 服务:

浏览器异常:

如何克服这个问题?使用Odata Connected Service的主要原因是使用它的属性跟踪功能。

0 投票
1 回答
156 浏览

wpf - 将 HMAC 与 OData 连接服务一起使用

所以我们想使用一个在 ASP.net 中构建并使用 OData 作为协议的 webapi。我做了一些功课,发现微软有一个非常好的文档OData Connected Service。我唯一找不到的是我们要使用的 webapi 具有 HMAC 以确保安全。我找不到OData Connected Service与 HMAC 一起使用的示例。有人可以解释 HMAC 是否以及如何使用OData Connected Service?

0 投票
1 回答
80 浏览

post - 在 HttpWebRequestMessage 中找不到正文

目前我正在使用 Microsoft OData 连接服务来控制带有 HMAC 的 WebAPI。到目前为止,我设法让 GET 方法正常工作。但是,当我发布消息时,我需要对原始 HTTP 正文进行哈希处理并将其添加到标题中。(由于 HMAC 签名)

到目前为止,我得到了:

0 投票
1 回答
163 浏览

.net-core - 带有 ODataClient 的 Blazor - 缺少位置标头

我正在使用 Microsoft.OData.Client 创建客户端 Blazor 应用程序。当我像这样创建新实体时:

我收到一个异常,指出对此 POST 请求的响应缺少 Location 标头。当我运行 fiddle 以查看发生了什么时,我可以看到它实际上发出了 2 个请求。在此处输入图像描述

第一个请求是 POST 但不包括正文并收到 204 响应。第二个请求是实际包含创建新资产的数据的请求,并且响应包含应有的 Location 标头。

我猜 OData 客户端抱怨第一个请求的响应中缺少 Location 标头(因为第二个请求的响应确实包含标头)。但为什么它甚至提出第一个请求?

知道如何处理这个问题吗?

0 投票
0 回答
24 浏览

.net-core - OData.Client.DataServiceContext 在调用 SSL 服务器后返回空列表

我必须实现一个 OData 服务来针对具有以下安全要求的 WebAPI:证书、cookie、基于用户角色的策略。我使用 OData Connected Services 生成了该服务。我按照以下文档实现了 http 客户端功能:https://docs.microsoft.com/en-us/odata/client/using-httpclient

重现步骤

我做了一个 POC 来说明证书功能的问题:https ://github.com/Karine-GitHub/ODataTesting

  • 实例化默认容器
  • 向容器提供证书
  • 调用 container.WeatherForecast.Execute();

预期结果

有元素列表。

实际结果

列表为空。

附加细节

通过使用 Postman 发送请求,我得到了预期的结果。服务器按预期响应,当我将流响应读取为字符串时,似乎响应格式正确。