2022 年 7 月 3 日,星期日 ·5分钟阅读

加入 Postman

在过去的几周里,您可能已经注意到 Postman 一直在对 JSON Schema 的未来进行大量投资,聘请了其顶尖贡献者,并为他们提供了全职工作的机会,以改进 JSON Schema 规范和工具生态系统。我很高兴地宣布,我是该团队的最新成员。

JSON Schema 一直以来都是由一小群志愿者在他们的空闲时间进行维护,他们的工作没有得到任何经济支持。得益于 Postman,我们现在拥有一个由四名成员组成的团队,他们获得了经济支持和创造性的自由,可以专注于过去我们没有时间进行的项目和目标。我迫不及待地想看看这个团队在未来几年能取得怎样的成就。

当 Postman 去年聘请 Ben Hutton 全职负责 JSON Schema 时,我们社区中有些人担心 Postman 可能会以某种方式试图拥有或影响 JSON Schema 的发展,就像我们今天经常看到某些大公司对网络标准施加不当影响一样。幸运的是,Postman 并没有这样做,而且我们在过去一个月中加入的任何人都不会加入,如果他们那样做的话。Postman 只是让我们能够投入更多时间和精力来做我们多年来一直在做的事情。

背景

我大约在 2013 年发现了 JSON Schema,当时 draft-04 还是个新鲜事物。我当时正在设计 API,并且深入研究了 REST 和超媒体。我发现了 JSON Hyper-Schema,它独特地处理超媒体的方式使我能够以一种不显眼的方式将超媒体引入 API,并表达其他方法无法表达的关系。但最大的收获是,使用名为 Jsonary 的 JSON Hyper-Schema 实现以及一些基本的滚动工具,我可以以交互方式设计 API。我可以通过点击链接和填写表单来尝试工作流程,然后再投入资金进行构建。这在它获得名称之前就已经是 API 首选设计了。

大约在 2015 年左右,我开始参与规范讨论,并通过 StackOverflow 支持社区,在那里我始终是 JSON Schema 问题的最高答复者。有一段时间,我太忙于为支付账单而不得不做的其他事情,无法像我想的那样积极参与。但是,几年前我设法过渡到兼职咨询,目标是在需要的时候做一些工作来支付账单,并且尽可能多地花时间做一些让我快乐的事情,比如参与 JSON Schema 的工作。

在那段时间里,我决定开发一个 JSON Hyper-Schema 实现。我希望能利用现有的验证库并在其基础上构建一个 JSON Hyper-Schema 客户端,但当时还没有这样的库。我最终编写了自己的验证实现,它成为了第一个 2019-09 实现之一。这个实现的目标是成为一组工具,用于创建与 JSON Schema 相关的库。验证实现只是一个概念证明,你可以用这些工具创建一些东西。最终,我将回到实际实现那个 JSON Hyper-Schema 客户端。

目标

现在我可以全职专注于 JSON Schema,我有很多目标。以下是目前我的前三个目标,但谁知道随着时间的推移,风向和优先事项会发生怎样的变化。

我的首要任务是让 application/schema+json 媒体类型在 IANA 注册。它已经在线上应用了好几年了,而且是时候正式认可和定义它了。这是一个独特的挑战,因为 JSON Schema 在过去几年中发生了很大变化,并且在未来几年还会继续发生变化。无论我们最终得到什么,都需要包含过去和未来的 JSON Schema。

另一个目标是完成对 Understanding JSON Schema 文档的更新。由于 JSON Schema 社区没有资金,并且只能在空闲时间贡献,因此文档通常得不到应有的重视。去年,我开始更新文档,以涵盖最近两个 (!) 未经记录的草案。我完成了大部分工作,但是有一些内容,比如动态引用和词汇系统,是我在不得不接下咨询工作并赚钱之前没有完成的。

正如我之前所说,我非常喜欢 JSON Hyper-Schema。由于资源不足和缺乏采用,我们暂停了 JSON Hyper-Schema 规范的工作。现在我可以全职专注于 JSON Schema,我想重新引入 JSON Hyper-Schema(或类似的东西)。这是一项艰巨的任务,最重要的是需要开发工具,以便人们可以了解它有多强大。

个人

由于这是一篇介绍性文章,我想我应该也包含一些个人琐事。我住在加利福尼亚州圣路易斯奥比斯波。当我不在键盘前的时候,你可能会发现我在深山徒步旅行和/或露营、攀岩或指导体操。这篇文章的封面照片是我在南加州巴尔迪山的顶峰做倒立。