我们正在设计一个相当复杂的 REST API,其中大部分 I/O 是具有特定结构的 JSON 编码对象。我们发现的一个挑战是以一种使客户更容易发布正确输入和处理输出的方式记录 API。由于输入和输出的数据都需要相当复杂的 JSON 对象,因此客户端开发人员经常会引入与 I/O 对象结构相关的错误。
现在有了所有的 JSON Web API,我希望有一个通用的解决方案,但我很难找到一个。我查看了json-schema,它是一个 json-validation 模式,但 IETF 草案和实现似乎都相当不成熟(即使它们已经存在了一段时间,这不是一个好兆头)。
Protocol Buffers和Apache Avro提供了一种稍微不同的方法,其中模式不用于验证,但实际上需要用于消息的编码/解码。在这 2 个中,Avro 的文档和实现似乎相当有限。ProtoBuf 似乎更好,但我不确定这是否真的适合在浏览器中使用来调用 JSON api?
现在我开始怀疑我是否从正确的角度看待这个问题。是否有其他方法可以使我的 API 更加强类型?还是对 JSON REST/RPC API 的正式描述违背了使用 JSON 的目的?
编辑:在这个主题之后的 6 个月,我们发现了mongoose,这与我们正在寻找的非常接近。