问题标签 [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.

0 投票
2 回答
8570 浏览

java - 如何使用 Spring REST Docs 将顶级数组记录为响应负载

我正在使用 Spring REST Docs 来记录 REST API。我正在尝试记录以下 API 操作:

例如,调用GET /subsystems/samba返回以下 JSON 对象:

您可以使用以下片段,它使用 Spring REST Docs 来记录此 API 操作:

我的问题是第一个操作:调用GET /subsystems返回一个 JSON 数组:

我在 Spring REST Docs 文档中找不到任何示例来说明如何记录这种结果。我该怎么做?

0 投票
1 回答
3966 浏览

java - 使用 Spring REST Docs 记录分层 JSON 有效负载

我开始使用Spring REST Docs来记录一个简单的 REST API。我有一个具有一些层次结构的有效负载,例如像这样(有员工的公司)。

我想将公司对象(员工姓名和数组)和员工对象(员工姓名和年龄)的文档分开。

使用此处org.springframework.restdocs.payload.PayloadDocumentation.responseFields解释的类似内容会强制我记录所有字段,但如果我只想记录员工字段 - 我该如何实现?

我可以在没有员工详细信息的情况下记录公司,因为如果一个字段是文档,则后代也被视为已记录。但是我无法单独记录员工结构,并且在没有公司根对象的情况下,我没有此结构的专用有效负载。

0 投票
2 回答
332 浏览

java - 无法在 URL 中记录 JSON

在我的 Rest API 中,应该可以检索边界框内的数据。因为边界框有四个坐标,所以我想以这样的方式设计 GET 请求,即它们接受边界框作为 JSON。因此,我需要能够将 JSON 字符串作为 URL 参数发送和记录。

测试本身有效,但我无法使用 Spring RestDocs (1.0.0.RC1) 记录这些请求。我用更简单的方法重现了这个问题。见下文:

当我删除.andDo(document("ping_username"))测试通过时。

堆栈跟踪:

在收到对 URL 进行编码的建议后,我尝试了它,但问题仍然存在。

在我的测试中用于创建 URI 的字符串是 now /ping?name%3D%7B%22user%22%3A%22M%C3%BCller%22%7D

我检查了MockMvcOperationRequestFactory堆栈跟踪中出现的类,并在第 79 行执行了以下代码:

这里的问题是使用了未编码的字符串(在我的情况下http://localhost:8080/ping?name={"user":"Müller"})并且创建 URI 失败。

评论:

安迪威尔金森的答案是解决问题的方法。尽管我认为 David Sinfield 是对的,并且应该避免在 URL 中使用 JSON 以保持简单。对于我的边界框,我将使用逗号分隔的字符串,因为它在WMS 1.1中使用:BBOX=x1,y1,x2,y2

0 投票
1 回答
6007 浏览

java - pathParameters 文档异常(未找到 urlTemplate)

用于pathParameters记录 URI 路径参数时,如下所示

我得到以下异常

我很确定我做了这里解释的测试设置。

我可能做错了什么?

(Spring REST 文档版本是 1.0.0.BUILD-SNAPSHOT)

0 投票
1 回答
386 浏览

spring - spring-restdocs 无法识别 apply()

我正在尝试基于spring-restdocs生成一个 Rest API 文档

在以下代码中,我在apply()处收到编译时错误

未定义类型 DefaultMockMvcBuilder 的方法 apply(RestDocumentationMockMvcConfigurer)

0 投票
0 回答
162 浏览

spring-restdocs - 我可以使用 spring-restdoc 生成 API 文档吗?

我正在使用 spring-restdoc 来记录我的宁静服务。我现在继续前进,也想公开我发布的事件。将这些合并到文档中的正确方法是什么?

我想出了一个类似于 的类RestDocument,可以将 aClass作为参数,您可以通过类似的流畅接口记录该类的所有属性。

0 投票
1 回答
844 浏览

grails - 是否可以直接在 grails 中使用 Spring MVC 测试,以及如何使用?

我们认为这Spring Rest Doc对于记录 rest api 非常有用。但它是基于Spring MVC Test,我们无法弄清楚如何Spring MVC Test在我的 grails 应用程序中使用(Grails 3.0.5)。

我尝试使用配置类(使用@Configurationand @ComponentScan)将 grails 组件扫描到测试上下文中,但似乎没有加载任何内容(当对 执行 http 请求时mockmvc,它得到 404)。

我还尝试直接配置 grails 控制器,但出现运行时错误。

无法自动装配字段:私有 reactor.bus.EventBus

我还尝试@Integration在测试类上添加(来自 grails),但收到了同样的错误。

请帮忙。

以下是一些代码示例。我尝试将配置类或类位置或 grails 控制器添加到下面测试类的 ContextConfiguration 中。并且测试类本身基本上遵循spring rest doc参考。

配置类(没有用):

0 投票
1 回答
2302 浏览

java - Spring REST Docs:如何替换参数

在我的单元测试中,我们发现

参看。Spring REST 文档文档

build/generated-snippets/preprocessed-request/http-request.adoc与内容一起生成

但我希望密码会因为 replacePattern() 而被屏蔽:

我能做些什么?

0 投票
2 回答
2210 浏览

spring-restdocs - 如何在 Spring REST Docs 中更改 curl 片段中的主机

Spring REST Docs 生成一个 curl 片段,在测试时非常方便。它相当于MockMvc其文档中所说的调用,但如果它的主机部分可以替换为测试服务器的主机名(包括端口)而不是localhost. 是否有可能用它的当前版本来实现它?

0 投票
1 回答
2694 浏览

spring-restdocs - 如何在 Spring REST Docs 中使请求参数成为可选参数

我知道fieldWithPath()optional()但没有找到如何使parameterWithName()可选。