问题标签 [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 投票
1 回答
645 浏览

clojure - compojure-api 返回值模式或错误

compojure-api允许您定义return架构:

我的问题是当get-pizzafn 返回 404时{:status 404 :body {:message "Invalid id provided"}},响应(对请求者)是 404 与Pizza架构不匹配:

文档显示您可以提供多个响应模式,但我不清楚我的get-pizzafn 应该返回什么以利用这些模式。get-pizza他们的示例使用 ring-http-response 库生成返回值,但我的返回值 for和ring-http-response 'not found' fn之间没有区别。

老实说,如果可能的话,我宁愿不使用:responses参数,因为我已经可以预见到所有的代码重复。在指定:return架构之前,我能够让我的get-pizzafn 返回 404 并正确传递给请求者,但是一旦我添加了架构,我就无法再这样做了。我考虑让返回值是:return (s/one Pizza Error)一个Error通用定义的错误映射,但我不明白为什么如果理论上所有调用都可以返回 500,我为什么要为每条路由执行此操作。

注意:我转而使用:return参数的原因是它使生成的 swagger-ui 文档更漂亮且更易于理解。

0 投票
1 回答
1025 浏览

clojure - Why does the validation fail (ExceptionInfo Value does not match schema) for a prismatic schema using onyx?

Can someone throw light on whats going on here ? I have double checked dynamodb-local behavior using a non-onyxian client and simple operations work using Faraday . The code which I am trying to run is here and I have logged an issue here but haven't got any response.

Here is the output from the REPL:

The full stacktrace using *e is below:-

The output from a Faraday client REPL (my-ns is a local namespace for testing) which will connect to the same dynamodb running locally is below:

I have created a public gist for core.clj here and for cqrs.clj here for review. My project.clj looks like this.

Can someone please help me fix this ?
TIA

0 投票
1 回答
797 浏览

clojure - 为什么我不能使用正则表达式来验证字符串作为映射键?

在我的 Clojure 项目中,我有这些:

这被认为是有效的:

因此,基于此,我认为以下内容也是有效的(但事实并非如此):

0 投票
1 回答
698 浏览

clojure - (棱柱形)Plumatic Sc​​hema 文档

我一直在考虑使用 prismatic/schema 在 clojure 中进行打字和记录,但我很难找到完整的文档。github 自述文件提供了一些有用的基本使用信息,但给我留下了很多悬而未决的问题(例如,为什么需要 (s/one s/Str "s") 中的 "s" 参数)。有谁知道棱柱模式的完整教程或文档来源?

0 投票
1 回答
231 浏览

clojure - 专门检查矩阵 Clojure 架构中的向量

在我的程序中,我使用了一种矩阵(作为向量的向量),如下所示:

我有一个架构,声明为:

我想做的是进一步限制模式,以确保我的矩阵是 clojure.lang.PersistentVector 的向量,甚至更好(如果可能的话),一种支持随机访问的结构。似乎在模式中使用 [ ] 仅测试序列,因此列表列表也将通过模式。

我如何用模式表达这个约束?

0 投票
1 回答
687 浏览

clojure - 棱柱形/模式强制的默认值而不是错误消息

使用 prismatic/schema coerce 可以在强制失败而不是错误消息时使用默认值。

我在 csv 文件中有一个值,它可以是空白(nil)或 s/Int。目前使用下面的代码我得到这个空白:

代码:

0 投票
0 回答
357 浏览

clojure - Clojure 中的多态模式

我想创建多态模式/类型,并且对最佳实践感到好奇。以下 2 个示例允许我创建一个Frequency可以重复事件的模式monthly by day of month,或者monthly by day of week(例如,分别每 15 日或每个第一个星期一)。

第一个使用实验性抽象图来实现这一点,它的语法很笨拙(IMO)。另外,在实验包中我有点担心。

第二个使用s/conditional,它的缺点是无法轻松地强制type从 astring到的值keyword,这在处理 REST API 或 JSON 时很有用。(而s/eq这很好)。

在一般情况下,以下选项之一或第三个选项是传达的最佳实践:Type A is one of Types #{B C D ...}

两种选择:

不太有帮助的类似问题:

0 投票
1 回答
865 浏览

if-statement - clojure 模式的验证

我在验证 clojure 棱柱模式时遇到问题。这是代码。

我正在尝试使用以下代码对其进行验证:

但它给我一个错误:

这是我要验证的非常基本的代码。我对clojure很陌生,仍在尝试学习它的基础知识。

谢谢,

0 投票
1 回答
89 浏览

haskell - 添加语法糖以使 Prismatic Sc​​hema 看起来像 Core.Typed/Haskell

  1. 考虑core.typed注释函数的方式:

    /li>
  2. 现在考虑 Prismatic Sc​​hema 注释函数的方式:

    /li>

就个人而言,我发现core.typed注释函数的方式在精神上更清晰,更接近于 Haskell 等强类型语言。

问题:有没有办法使用 Prismatic Sc​​hema 在 clojure 中制作某种宏或函数,具有 (2) 的效果但视觉外观 (1)?也就是说,类似于以下内容:'

这样的效果仅仅是

0 投票
0 回答
34 浏览

clojure - 同时使用 Prismatic Sc​​hema 和 Core.Typed?

我正在试验这两个库。我可以自己使用一个或另一个,但是当我尝试同时使用两者时(即,在同一个文件中),我得到一个非常大的控制台错误,抱怨许多棱柱模式库函数不正确注释。有没有办法让 core.typed 忽略模式的东西?