地图中单个键的 Clojure 规范

问题描述

我正在推测来自 Google Calendar API 的 http 响应 我希望每种响应类型都有不同的规范。

我已经为 HTTP 响应定义了一个规范

(s/def ::http-resp
  (s/keys :req-un [:status] :opt-un [:body]))

但是我如何为每个 HTTP 状态定义规范? 我知道我可以做 :s.http-error-401/status,但我更喜欢

(s/and ::http-response 
       (key-in-a-map :status :s.http-statuses.error/gone))

也许有一个关于 HTTP 响应的良好规范的例子? 到目前为止,我只找到了 ring-spec

解决方法

IMO /assets/videos/video-1.mp4 已经达到您的目的。您可以在那里找到 HTTP 状态的规范:

ring-spec

请注意,HTTP 状态代码是一个数字。如果您需要微调规范,您可以随时执行以下操作:

(s/def :ring.response/status (s/int-in 100 600))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...