问题标签 [spring-restdocs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-restdocs - Spring rest docs 嵌套对象
我们需要以下列形式对呼叫作出响应:
我应该如何记录它?问题是该对象是以 EntryId 作为键的结构,并且在其文档时不包含 id。有没有可以使用变量来定义键的选项?或者推荐在 responseFields 中使用什么?
maven - Swagger2Markup:在测试中使用 Swagger 远程端点时如何按标签分组?
我正在使用 Swagger 提供的出色的swagger2markup插件为我的 REST API 生成 Asciidoc 文档。我遵循了 swagger2markup 文档,并且正在使用 Spring MVC 集成测试从我的 Springfox Swagger 端点生成标记,如下所示(我正在使用 Maven):
一切都很好,我的所有路径都在我的最终文档中,但是路径都直接出现在根目录中,并且没有按资源分组(即按控制器),因此Method 1
from将出现在与fromController 1
相同的级别。Method 2
Controller 2
我的输出:
我想要什么:
据我所见,当使用从本地文件生成时,如在这个swagger2-markup Maven 项目模板中,您可以指定一个属性来告诉 swagger2markup 使用 config 属性按标签对路径进行分组<swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
,但是似乎没有这样的配置Swagger2MarkupResultHandler
从测试中使用时。唯一的选择是withMarkupLanguage()
,但没有withPathsGroupedBy()
方法......
我在这里错过了什么吗?
spring-restdocs - 如何从示例 curl 中完全删除端口号
我正在记录一个 Web API,我需要 curl 和 httpie 示例才能有效调用我们的端点。问题是示例 curl 片段包含一个端口号,我看不到任何摆脱它的方法。我知道如何设置端口号,但我不知道如何完全摆脱它。
我错过了什么吗?这似乎是一个常见的用例。
提前感谢您的帮助!
spring - 如何使用 Spring Rest Doc 记录错误消息
我在 spring mvc 测试中使用 Spring rest doc 来生成一个安静的文档。现在我试图描述资源上可能出现的错误消息,但我在 spring 文档中找不到任何可以帮助我的东西。
我想要实现的类似于http://apidocjs.com/example/的 Error 4xx 部分
有什么想法吗 ?
spring-boot - 如何使用 Spring REST Docs 进行集成测试?
我有一个运行三个 Web 服务器的多模块项目。有一台服务器正在代理其他两台服务器的请求。
我想做集成测试:当整个应用程序运行时,我想运行 HTTP 请求并检查响应是否正确。我想运行与单元测试相同的测试,但使用不同的端口,因为代理也应该被测试。
? 如何告诉 Spring 我想在不启动应用程序的情况下运行测试?他们已经开始了。我只想发送请求并检查响应。
我有生成的单元测试http-request.adoc
和http-response.adoc
在我的 asciidoctor API 文档中使用的片段。
http-request.adoc 的示例:
http-response.adoc 的示例:
我使用脚本参数:-Pintegration=true
从单元测试模式切换到集成测试模式:
? 当我进行集成测试时,我不想Host: localhost:8080
在请求中包含正在运行的代理应用程序的主机和端口(目前为 localhost:8030)。我如何实现这一目标?
到目前为止我使用的代码
抽象测试类。模块的测试扩展了这个类:
代理模块知道将请求发送到哪里,我们在每个模块的特定测试实现中覆盖 URL。例子:
spring-boot - 在 Spring Boot 应用程序中访问 spring-restdocs 生成的内容
我在 Spring Boot (v1.4.1) 应用程序中使用 Spring Restdocs (v1.1.2)。
在 Gradle 构建文件的 jar 任务中,我将生成的输出复制到 public/docs 中:
我在生成的 JAR 中看到了文档
但是,当我运行 JAR 时,我似乎无法在 /docs、/public/docs 等处处理 api-guide.html。
有人可以解释我做错了什么吗?
谢谢!
- 约翰
==================================================== ===========
这是应用程序配置:
和测试配置:
java - Spring REST Doc 未命名请求参数
我正在使用Spring REST Docs library编写我的 rest 服务的文档。
我遇到的一个问题是我接受一个带有 JSON 结构的 POST 请求作为没有任何名称的输入。
请求看起来像这样:
我想记录输入结构,但到目前为止还没有办法做到这一点。
该文档描述了这样的内容:
但是我的参数没有名字。
我已经尝试过:
我也尝试使用空名称("")和数组表示法("[]")。到目前为止没有运气。
是否可以记录未命名的参数,还是应该将其包装在另一个结构中?
谢谢,
spring - 在使用 SpringBootTest 和在 Spring 之前运行的其他测试时,如何确保 Eclipselink 的加载时间编织发生
我正在使用 Spring Rest Docs 为我的 REST 服务生成文档。这涉及运行单元(严格集成)测试,这些测试针对由测试启动的活动 Spring Boot 容器运行。测试类如下所示:
该应用程序使用 JPA 和 EclipseLink 来实现 EntityManager。
当我在我的 IDE 中独立运行测试时,或者作为我使用 maven-surefire-plugin 运行 Maven 构建时唯一存在的测试时,一切正常。
然而,这不是我想在套件中运行的唯一测试。一旦我在套件中运行其他测试,我就会遇到这里提到的问题,即
“Spring 的代理在应用访问 Spring 上下文之前不会初始化持久化上下文。如果应用在访问 Spring 上下文之前已经触发了持久化类的加载,则不会发生编织。”
并得到这样的错误:
异常描述:方法 [_persistence_set_someField_vh] 或 [_persistence_get_someField_vh] 未在对象 [mypackage.MyEntity] 中定义。
那么人们通常会做什么来解决这个问题呢?在不同的模块中运行 SpringBootTest 类来单元测试访问实体?
spring - Spring REST Docs 询问@RestController?
我正在查看 Spring REST Docs 并想知道它是否能够询问 @RestController 方法以生成描述 Rest API(方法、http 方法、参数、响应类型)的基本文档?我相信 Springfox Spring/Swagger 可以做到这一点,并且比编写测试来获取基本信息/文档更容易。
此外,由于我不想在生产环境中运行集成测试,因此 Spring RestDocs 方法是在测试环境中运行集成测试,然后将生成的文档/片段复制到战争中,以便可以在产品中查看环境?
java - 是否可以将弹簧休息文档与 spock 一起使用
我在我的 java 应用程序中使用 spock 和 groovy 构建了测试用例。是否可以在不使用 mock mvc 或 reassured 的情况下将 spring rest docs 添加到这个项目
这是我的项目的片段