我正在试图找出让我的API文档成为事实来源的最佳方法,并使用它来理想地通过集成测试或类似的东西来验证实际的Java REST代码。我们使用合同优先或消费者合同类型的方法,因此我们不希望文档必须从带注释的代码生成,并且每次开发人员进行更改时都要更新。
一种想法是使用Swagger,但我不确定如何最好地将其用于验证API。理想情况下,最好在构建或集成测试过程中进行验证,以查看真实响应(如果可能请求)是否与预期相符。我知道Swagger有很多用途和工具,只是想绕过它。或者,如果有更好的替代方法可以使用Java代码。
答案 0 :(得分:4)
最近,我们(swagger-codegen社区)开始向API客户端(C#,PHP,Ruby)添加自动测试用例生成。我们还没有将它添加到Java中。以下是Swagger-Codegen为C#生成的一些示例测试用例:
它仍然非常初步,我们希望听到您的反馈,看看您是否正在寻找。
答案 1 :(得分:2)
我认为你应该尝试swagger-request-validator: https://bitbucket.org/atlassian/swagger-request-validator
以下是一些如何使用它的示例: https://bitbucket.org/atlassian/swagger-request-validator/src/master/swagger-request-validator-examples/
另一种选择是assertj-swagger: https://github.com/RobWin/assertj-swagger
答案 2 :(得分:2)
您可能需要查看Spring Cloud Contract。它为您提供了一个DSL,您可以在其中描述场景(或多或少是我对给定请求的响应),它似乎很适合您所描述的要求......
答案 3 :(得分:-1)
如果您使用的是Spring Framework,我强烈建议您查看允许您生成的Spring RestDocs