问题标签 [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.
asp.net-mvc - OData 是否适合大型 MVC5/WebAPI 应用程序
我正在为我的 Web 应用程序使用以下堆栈 MVC5 + WebAPI 2.2 + EF6 + AngularJS。今天,我尝试将其合并OData
到Angular BreezeJS
我的应用程序中,并且它对其中一个实体运行良好。
目前,我有大约 45 个表,可以转换为 45 个模型类。
在 Web API 中,我可能只有 5-10 个控制器来处理 45 个模型的 CRUD 操作,使用基于我传递的变量的 switch 语句,如entityName
, operationName
。
但是,在 OData 中,我需要 45 个由 VS 搭建的控制器。有什么方法可以利用 OData 的好处,例如querying/paging/patching
无需为每个模型类创建控制器?
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。怎么做?
asp.net-mvc - RESTier OData 函数返回 EntitySet。“无法从 OData 路径中找到相关实体集”
在 RESTier OData 上添加了一个功能
在我的 DomainController 中实现了自定义功能
但我不断得到这个结果作为回报
如何在 RESTier 上分配正确的返回 EntitySet 集合?我想返回对象列表/ IQueryable
odata - 支持 $expand 和 $filter 的 RESTier OData 函数
在 RESTier 团队的帮助下,我设法创建了一个 RESTier 函数来返回我的实体列表。
这是代码
这是我在控制器上的实现
它可以很好地返回数据列表,我将 HTTP GET 发送到 http://localhost:21922/odata/AmbilLocationsByMarketId
但是当我尝试添加 $expand 或 $filter 时,它不起作用。 http://localhost:21922/odata/AmbilLocationsByMarketId ?$expand=Category
我是错误,读起来像
这是我的元数据
这是 EntityContainer
c# - 返回对象时Restier未绑定函数抛出错误
我已经定义了一个未绑定的函数,它返回一个 poco 对象的列表。它按预期工作,但在返回对象时失败。返回时无法将对象序列化为 json。默认序列化不起作用。这是我得到的错误:
我在 OnModelExtending 中定义返回类型和添加 odata 方法的代码如下:
如果我使用 Json.net 进行序列化,那么我会得到一个可以返回的 json 字符串,但这不是我想要的。我想要正确的 odata 格式的 json 数据,就像我得到的 odata 模型一样。我怎样才能得到这个功能?如果我的类型不是实体而只是普通的 poco 类型(未映射到任何表),是否有可能获得该格式?任何帮助将不胜感激。
odata - 使用 RESTier 过滤多租户数据
我有一个多租户数据库,其中我的数据库中的每个表都有一个“tenant_id”列。我想使用 RESTier 在此数据库上公开 OData 服务,其中对我的服务的每个请求都将包含一个 JWT,其中包含一个声明,指示正在访问哪个租户的数据。如何筛选仅返回给传入租户的记录?
通过阅读http://odata.github.io/RESTier上的文档,看起来“实体集过滤器”功能旨在解决这个确切的场景场景。因此,假设我可以从传入的 JWT 中提取tenant_id 来建立当前的声明主体,我应该能够执行以下操作:
这是执行这项工作的最合适的地方吗?是否有任何基于授权请求标头执行行级过滤器的示例?
我还想从我的 EDM 中隐藏 tenant_id 列 - 有没有这样做的机制?
asp.net - Restier(Odata)扩展+计数和顶部不起作用
我实际上正在使用 Restier 0.4.0-rc2 并且在扩展我的实体时遇到了问题。
例子 :
一切都正确,计数是 97
还可以,计数是 97
没关系,计数现在是 10。
这是一个问题,因为我的分页不再在我的剑道 ui 网格中工作。
我不知道如何解决这个问题,我在谷歌上做了很多搜索,但没有解决我的问题..
有人有想法吗?
非常感谢你
c# - 实体框架一对一关系?
我已经从我的图表中生成了我的表格:
数据库模式 但我不知道为什么,EF 会在 Origin 模型中生成它:
在容器模型中:
在上下文中:
但是一个容器对象只能有一个 Origin 对象。
如何删除集合以使我的对象在原始对象中只有一个实例?
因为实际上我的 Restier 服务正在使用只有一个容器的集合来检索我的原始对象。
所以收藏完全没用。
你们有什么想法吗?
非常感谢
restier - 如何取消对 RESTier 中未能通过自定义验证逻辑的实体的更新?
我正在使用 RESTier 0.4.0-rc2。
使用 OnUpdating... 如果实体未能通过我的自定义验证逻辑,我将无法取消更新并返回自定义错误。
使用 CanUpdate... 我可以通过返回 false 来取消更新,但是没有传入实体来应用我的自定义逻辑,也无法提供自定义错误。
似乎是一个基本缺陷,我错过了什么吗?
restier - 如何在 RESTier 0.5.0 中使用 Windows 身份验证
出于自定义授权的目的,我需要找出当前用户是谁,以便确定他们是否获得授权。
我可以使用[Authorize]属性来强制 Windows 身份验证吗?
然后我可以使用Thread.CurrentPrincipal来确定用户是谁吗?