问题标签 [restier]

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 投票
2 回答
1116 浏览

asp.net-mvc - OData 是否适合大型 MVC5/WebAPI 应用程序

我正在为我的 Web 应用程序使用以下堆栈 MVC5 + WebAPI 2.2 + EF6 + AngularJS。今天,我尝试将其合并ODataAngular BreezeJS我的应用程序中,并且它对其中一个实体运行良好。

目前,我有大约 45 个表,可以转换为 45 个模型类。

在 Web API 中,我可能只有 5-10 个控制器来处理 45 个模型的 CRUD 操作,使用基于我传递的变量的 switch 语句,如entityName, operationName

但是,在 OData 中,我需要 45 个由 VS 搭建的控制器。有什么方法可以利用 OData 的好处,例如querying/paging/patching无需为每个模型类创建控制器?

0 投票
0 回答
457 浏览

asp.net-mvc - 如何在 OData RESTier 上创建自定义函数

我指的是http://odata.github.io/RESTier/#03-01-Operations关于如何创建一个接受输入并返回对象列表的自定义方法。

这是我的自定义方法

这就是我在我的 DbDomain 中设置它的方式

无法让它工作。不断收到 OData Uri 错误,例如

控制器“PointLoc”中操作“GetLocationsByMarketId”上的“Locations/PointLoc.Data.GetLocationsByMarketId()”不是有效的 OData 路径模板。请求 URI 无效。由于“Locations”段指的是一个集合,所以它必须是请求 URI 中的最后一个段,或者它后面必须跟一个可以绑定到它的函数或操作,否则所有中间段必须引用单个资源。

想要通过“/Locations/GetLocationsByMarketId”访问 Odata。怎么做?

0 投票
1 回答
936 浏览

asp.net-mvc - RESTier OData 函数返回 EntitySet。“无法从 OData 路径中找到相关实体集”

在 RESTier OData 上添加了一个功能

在我的 DomainController 中实现了自定义功能

但我不断得到这个结果作为回报

如何在 RESTier 上分配正确的返回 EntitySet 集合?我想返回对象列表/ IQueryable

0 投票
0 回答
496 浏览

odata - 支持 $expand 和 $filter 的 RESTier OData 函数

在 RESTier 团队的帮助下,我设法创建了一个 RESTier 函数来返回我的实体列表。

这是代码

这是我在控制器上的实现

它可以很好地返回数据列表,我将 HTTP GET 发送到 http://localhost:21922/odata/AmbilLocationsByMarketId

但是当我尝试添加 $expand 或 $filter 时,它不起作用。 http://localhost:21922/odata/AmbilLocationsByMarketId ?$expand=Category

我是错误,读起来像

这是我的元数据

这是 EntityContainer

0 投票
1 回答
220 浏览

c# - 返回对象时Restier未绑定函数抛出错误

我已经定义了一个未绑定的函数,它返回一个 poco 对象的列表。它按预期工作,但在返回对象时失败。返回时无法将对象序列化为 json。默认序列化不起作用。这是我得到的错误:

我在 OnModelExtending 中定义返回类型和添加 odata 方法的代码如下:

如果我使用 Json.net 进行序列化,那么我会得到一个可以返回的 json 字符串,但这不是我想要的。我想要正确的 odata 格式的 json 数据,就像我得到的 odata 模型一样。我怎样才能得到这个功能?如果我的类型不是实体而只是普通的 poco 类型(未映射到任何表),是否有可能获得该格式?任何帮助将不胜感激。

0 投票
0 回答
245 浏览

odata - 使用 RESTier 过滤多租户数据

我有一个多租户数据库,其中我的数据库中的每个表都有一个“tenant_id”列。我想使用 RESTier 在此数据库上公开 OData 服务,其中对我的服务的每个请求都将包含一个 JWT,其中包含一个声明,指示正在访问哪个租户的数据。如何筛选仅返回给传入租户的记录?

通过阅读http://odata.github.io/RESTier上的文档,看起来“实体集过滤器”功能旨在解决这个确切的场景场景。因此,假设我可以从传入的 JWT 中提取tenant_id 来建立当前的声明主体,我应该能够执行以下操作:

这是执行这项工作的最合适的地方吗?是否有任何基于授权请求标头执行行级过滤器的示例?

我还想从我的 EDM 中隐藏 tenant_id 列 - 有没有这样做的机制?

0 投票
1 回答
318 浏览

asp.net - Restier(Odata)扩展+计数和顶部不起作用

我实际上正在使用 Restier 0.4.0-rc2 并且在扩展我的实体时遇到了问题。

例子 :

一切都正确,计数是 97

还可以,计数是 97

没关系,计数现在是 10。

这是一个问题,因为我的分页不再在我的剑道 ui 网格中工作。

我不知道如何解决这个问题,我在谷歌上做了很多搜索,但没有解决我的问题..

有人有想法吗?

非常感谢你

0 投票
2 回答
42 浏览

c# - 实体框架一对一关系?

我已经从我的图表中生成了我的表格:

数据库模式 但我不知道为什么,EF 会在 Origin 模型中生成它:

在容器模型中:

在上下文中:

但是一个容器对象只能有一个 Origin 对象。

如何删除集合以使我的对象在原始对象中只有一个实例?

因为实际上我的 Restier 服务正在使用只有一个容器的集合来检索我的原始对象。

所以收藏完全没用。

你们有什么想法吗?

非常感谢

0 投票
1 回答
82 浏览

restier - 如何取消对 RESTier 中未能通过自定义验证逻辑的实体的更新?

我正在使用 RESTier 0.4.0-rc2。

使用 OnUpdating... 如果实体未能通过我的自定义验证逻辑,我将无法取消更新并返回自定义错误。

使用 CanUpdate... 我可以通过返回 false 来取消更新,但是没有传入实体来应用我的自定义逻辑,也无法提供自定义错误。

似乎是一个基本缺陷,我错过了什么吗?

0 投票
0 回答
77 浏览

restier - 如何在 RESTier 0.5.0 中使用 Windows 身份验证

出于自定义授权的目的,我需要找出当前用户是谁,以便确定他们是否获得授权。

我可以使用[Authorize]属性来强制 Windows 身份验证吗?

然后我可以使用Thread.CurrentPrincipal来确定用户是谁吗?