如何在使用 spring 云合同时生成漂亮的打印文档

How to generate pretty print docs while using spring cloud contract

不引入spring云合约,我自定义restdocs的配置如下,

  @Rule
  public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation();


  protected WebTestClient http;
  @Autowired
  private ApplicationContext context;

  /**
   * setup.
   */
  @Before
  public void before() {
    this.http = WebTestClient.bindToApplicationContext(context)
        .configureClient()
        .baseUrl("http://theserver")
        .filter(WebTestClientRestDocumentation
            .documentationConfiguration(this.restDocumentation)
            .operationPreprocessors()
            .withRequestDefaults(prettyPrint())
            .withResponseDefaults(prettyPrint())
        )
        .build();
  }

然而,在同时使用 spring restdocs 和 cloud contract 时,我必须使用注释来启用 rest docs 和 cloud contract,

@AutoConfigureRestDocs(uriHost = "theserver", uriPort = 80)
@AutoConfigureWebTestClient
public abstract class BaseTest {

关于如何在生成云合同存根时生成漂亮的打印文档有什么建议吗?

您可以做的是不使用 @AutoConfigureRestDocs,而是使用 API 将 .snippets().withAdditionalDefaults(new WireMockSnippet()) 行传递给 WebTestClientRestDocumentation.documentationConfiguration(...)。这样默认情况下您将开始生成 WireMock 片段并且您之前的所有配置都不会被丢弃。