首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >棱柱/架构是否需要键依赖关系?

棱柱/架构是否需要键依赖关系?
EN

Stack Overflow用户
提问于 2020-10-25 20:50:10
回答 1查看 59关注 0票数 1

我在compojure-api中使用plumatic/schema来验证端点的输入。

我的模式中有两个键:Field1Field2。我希望能够为我的模式定义一个规则,例如:

代码语言:javascript
复制
WHEN Field1 = "AA" 
THEN Field2 is required-key 
ELSE Field2 is optional-key

但是,我似乎只能将键设置为require或optional。可以使一个密钥依赖于另一个密钥吗?

代码语言:javascript
复制
(schema/def Field1
  (schema/enum "AA" "BB"))

(schema/def Field2
  (schema/enum "AAAA" "BBBB" "CCCC"))


(schema/defschema MySchema
  {(schema/required-key :field1)           Field1
   
   ; Here I want some kind of logic to make the key required if 
   (if (= Field1 "AA")
       (schema/required-key :field2)      Field2
       (schema/optional-key :field)      Field2)
   })
EN

回答 1

Stack Overflow用户

发布于 2020-10-25 21:44:01

代码语言:javascript
复制
(use '[plumbing.core])

(schema/defschema MySchema
    (schema/conditional
        (fn-> :field1 (= "AA"))
        (schema/schema-with-name {(schema/required-key :field1) Field1
                                  (schema/required-key :field2) Field2} "cond1")
        
        :else
        (schema/schema-with-name {(schema/required-key :field1) Field1
                                        (schema/optional-key :field2) Field2} "cond2")))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64523867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档