首页 > 其他分享 >OData – 大杂烩

OData – 大杂烩

时间:2024-08-05 22:52:41浏览次数:11  
标签:string GET OData 大杂烩 filter query select

前言

本篇记入一些 OData 的小东西。

 

Query string too long

OData 使用 GET 请求,然后搭配 query string $filter, $select, $expand 等等。

这就有一个问题了。假如 $filter, $select 非常非常长会出问题吗?

通常是不会遇到问题的。参考:Stack Overflow – What is the maximum possible length of a query string?

现代游览器和服务器都能处理很长的 query string,但也有人主张 GET 请求的 query string 尽量不要太长 (for security reason)。

无论如何,假如我们真的遇到人游览器或者服务器的限制,那还是得要有应对方法。

$query

OData 有一个 $query 的规范,简单说就是用 POST 代替 GET。

参考:Docs – Passing OData query options in request body

原本的 request URI 长这样

GET https://localhost:44300/api/products?$select=id&$filter=id eq 3

把它改成

POST https://localhost:44300/api/products/$query

Content-Type: text/plain

body: $select=id&$filter=id eq 3

把 query string 放到 body 里就可以了。

program.cs 需要加上这两句

Controller 则不需要换。

它的原理很简单,做一个 middle 拦截 request 然后把 POST 换回 GET,接着后续就接回原本的流程处理了。

 

 

  

 

标签:string,GET,OData,大杂烩,filter,query,select
From: https://www.cnblogs.com/keatkeat/p/18344180

相关文章

  • 如何在闪亮的应用程序中从geodataframe下载geopackage文件?
    我有一个shiny应用程序,它使用folium在地图上显示多个图层。我想让用户能够将其中一个图层(线串地理数据框)下载为地理包文件。这是我到目前为止的代码:#relevantimportedpackagesfromshinyimportApp,render,ui,reactiveimportpandasaspdimport......
  • Codeforces 2400+ flows 大杂烩
    CF903GYetAnotherMaxflowProblem2700关键点:最大流转最小割显然我们需要用其他方式维护最大流,考虑到最大流等于最小割,于是我们去求最小割。考虑这个图的特性不难发现左边和右边两列都至多割掉一条边,于是我们直接枚举割掉的位置,剩下的左边前缀和右边后缀所有相连的边都要割......
  • 聚类算法(2)--- ISODATA算法
           本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记:      AI学习笔记(8)---《聚类算法(2)---ISODATA算......
  • Angular Material 18+ 高级教程 – 大杂烩
    前言本篇记入一些AngularMaterial的小东西。 OverrideMaterialIconButtonSize参考:StackOverflow– Changesizeofmat-icon-button想overrideMaterialstyles有好几招可以用。第一招是overrideCSSvariables,这是最安全有效的方式,但是AngularMaterial不......
  • [999] Update table values in a geodatabase using arcpy
    Toupdatevaluesinafeatureclasswithinageodatabaseusingacrpy,wecanuseanUpdateCursor.UsinganUpdateCursorYoucanusean arcpy.da.UpdateCursortoiteratethroughtherowsofyourfeatureclassandupdatespecificfields.Hereisanexample......
  • 36. 关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为
    有朋友在知乎上向我咨询:OData更新多表数据的时候,可以做多层级结构的entity吗?多层的时候etag怎么做?比如我要更新表1.2.3。分别是header级别以及子层级别以及子层的子层。调用元调用一次会把三层的数据都给我们。如果put不可以做,一般odata这种怎么做。请赐教。......
  • QOJ #1280.Fibonacci Partition/Fibonacci性质大杂烩
    QOJ#1280.FibonacciPartition(为什么布置的作业题没有任何可见AC记录啊/kk)拿下了QOJ上的用户首杀(同时目前也是QOJ可见的submission中唯一一个过掉这个题的,另一个是vjudge上我的提交)。也许是这个题实在是太冷门了,但是从Fibonacci-Lucas数列的性质应用上是一道非常......
  • EF Core – 大杂烩
    前言记入一些零零碎碎的知识。 ShadowProperties参考:Docs– ShadowandIndexerPropertiesShadowProperty指的是那些在数据库有Column但是在EntityClass却没有Property的Property。举例publicclassProduct{publicintId{get;set;}publicstr......
  • 吉司机大杂烩
    CPU监控历史最大值可以让我们想到吉司机,然后发现这里有个就要考虑区间推平和区间加对lazytag的影响。我们要维护6个tag,maxx,hmaxx,ha,a,hc,c。考虑之前的线段树对于区间覆盖和区间加之怎么做的。我们发现如果我们有一个c标记,那么如果我们要下传一个ad标记,那么我们可以让c加上ad......
  • 阿里云数据湖存储加速套件JindoData
      计算存储分离已经成为云计算的一种发展趋势。在计算存储分离之前,普遍采用的是传统的计算存储相互融合的架构,但是这种架构存在一定的问题,比如在集群扩容的时候会面临计算能力和存储能力相互不匹配的问题。用户在某些情况下只需要扩容计算能力或者存储能力,而传统的融合架构......