问题标签 [plumatic-schema]

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 投票
4 回答
1435 浏览

validation - 棱柱模式:删除意外的键

我的 API 正在从客户端接收一些 JSON 数据。

我想使用 Schema 对收到的数据执行验证和强制,但还有一个额外要求:如果有任何未在模式中描述的映射键,请忽略并删除它而不是验证失败(这是因为我的客户可能会向我发送一些“垃圾”属性以及我关心的属性。我想对此保持宽容。)。

所以简而言之,我想select-keys在验证/强制之前使用我的模式对我的输入数据执行“深度”。

我需要的示例:

我还没有找到一种可靠的方法来做到这一点:

  1. 我似乎无法在自定义转换中执行此操作,因为步行者似乎无法让您访问密钥。
  2. 我没有运气尝试手动遍历模式,因为很难以通用方式区分映射模式和标量模式;也很难解释模式可以具有的所有可能的形状。

有没有明显的方法我没有看到?

谢谢!

0 投票
1 回答
465 浏览

clojure - What is the difference between body and body-params in compojure-api?

In compojure-api I noticed this two ways of specifying the API of a resource:

and

What are the difference between these two? What are the implications of using one vs the other?

0 投票
1 回答
910 浏览

clojure - compojure-api/schema/swagger 中的非必需参数?

当我有这样的 API 定义时:

使名称可选的适当方法是什么?是吗:

0 投票
1 回答
1710 浏览

clojure - :body-params 与 compojure-api 中的 :form-params

在使用 compojure-api 创建 API 时,在实践中使用 :body-params 和 :form-params 有什么区别?例如:

对比

哪一个应该用于将由单页 clojurescript 应用程序和/或本机移动应用程序使用的 API?

0 投票
1 回答
197 浏览

clojure - cannot validate values with string keys in map using clojure schema library

I tried validating a map using the prismatic/schema library for clojure. here is my shape

When I tried to validate it against a map, it throws the following exception

Am I do something wrong, or can't the schema library not validate against String keys ?

0 投票
1 回答
282 浏览

clojure - Clojure prismatic/schema defrecord 没有枚举运行时验证?

使用 prismatic/schema 时,defrecord 上的枚举验证不起作用,如下所示:

但是,当我将 enum 更改为 long 时,它按预期工作:

有人知道吗?太感谢了。

0 投票
1 回答
243 浏览

clojure - 棱柱模式强制 - 重命名映射键

我正在尝试使用棱柱模式(1.0.4)强制地图

我试图强迫

使用带有模式的自定义匹配器:

但是这段代码不起作用:

输出:

我尝试通过运行以下代码来调试它,该代码匹配架构中的所有内容并输出当前值和匹配的架构:

输出:

看起来匹配器一到地图就爆炸了?

0 投票
1 回答
418 浏览

clojure - 序列中的可选元素

我正在尝试使用 Prismatic/Schema 匹配以下序列:

我试过的:

主要问题是我不明白编写允许省略指定向量的第一个元素的模式的方法是什么。从上面匹配两个向量的正确方法是什么?

0 投票
1 回答
113 浏览

clojure - 在 Compojure-api 中,如何将模式验证应用于特定路由的表单参数?

来自文档compojure-api ... 给定

您可以稍后在代码中执行以下操作:

我的问题是如何为form-params路线实现这一目标?

IE

0 投票
1 回答
128 浏览

clojure - 如何获得“至少”模式?

“至少”是指将忽略所有disallowed-key错误的架构。考虑以下代码段:

关于at-least函数实现的第一个想法是将[s/Any s/Any]入口与初始模式结合起来:

但不幸的是,这种实现不适用于嵌套地图:

是否有可能获得at-least适用于嵌套地图的模式?或者也许prismatic/schema提供了我缺少的开箱即用的东西?