惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
人人都是产品经理
人人都是产品经理
美团技术团队
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
博客园 - 【当耐特】
V
V2EX
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
量子位
罗磊的独立博客
月光博客
月光博客
N
Netflix TechBlog - Medium
大猫的无限游戏
大猫的无限游戏
博客园_首页
P
Proofpoint News Feed
Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
腾讯CDC

博客园 - 兴杰

JavaScript Library – Astro 工具 - pnpm 前端基础几何计算 – basic geometric tan sin cos CSS & JS Effect – 用 SVG 画曲线和箭头 CSS & JS Effect – 画直角三角形与边框 CSS & JS Effect – 画箭头 C# – Nullable Reference Types ASP.NET Core Library – Magick.NET CSS & JS Effect – Smooth scrollIntoView JavaScript Library – Embla Carousel DOM – checkVisibility 富文本编辑器 ProseMirror 第二篇 の Schema 富文本编辑器 ProseMirror 第一篇 の 初探 JavaScript – Pipeline Operator 工具 – Playwright 工具 – Rsbuild JavaScript Library – Markdown CSS & JS Effect – 大杂烩 BOM – Clipboard API OData – 基础语法 Basic
OData – 大杂烩
兴杰 · 2024-08-05 · via 博客园 - 兴杰

前言

本篇记入一些 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,接着后续就接回原本的流程处理了。