我们正在创建一个perl和HTTP支持的RPC风格的API。我们正在寻找一个用于记录API输入/输出的库,并特别验证API输入。我们最初只支持XML,但现在主要是JSON输入/输出。但目前:XML和JSON。
我们使用嵌入在POD中的RELAX NG来记录输入和输出的外观并验证输入和可选输出,而不仅仅是为人类记录文本中的输入和输出结构。但这对JSON不起作用,所以目前我们不能/不验证JSON。
我们考虑过JSON::Schema,因为它可以验证perl数据结构,因此可以同时适用于XML和JSON。但是依赖性比我们在debian stable上可以忍受的更多。所以JSON :: Schema对我们来说是不可能的。
还有哪些其他选择?
编辑添加:理想情况下,我们希望验证输入/输出数据,如Liquid Web's documentation中详细说明的那样。奖励将是自动生成文档(如Liquid Web)和测试用例生成。
答案 0 :(得分:0)
考虑使用哈希在代码中定义和强制执行可接受的输入/输出,然后从源代码本身生成文档。这样您就不必维护api界面的单独文档,并且您更有可能注意到api中的问题。我之前已经取得了很大成功:)