Swagger Request Validator

build-status maven-central

A Java library for validating HTTP request/responses against an OpenAPI / Swagger specification.

Designed to be used independently of any HTTP library or framework, the library can be used to validate request/responses from almost any source (e.g. in a REST client, in unit tests that use mocked responses, in Pact tests etc.)

Key features

  • Standalone - no dependencies on HTTP libraries or frameworks
  • Adapters for commonly used HTTP libraries and testing frameworks
  • JSON Schema validation support - including schema references
  • Fine-grained control over which validations are applied
  • Support for Swagger v2 and OpenAPI v3 specifications

See Features for more details.


See the examples module for examples on how the library is used.

Usage details for specific modules can be found in the READMEs for those modules.


Project structure

See individual module READMEs for more information, including how to use use each module.



The core validator logic.

Provides a standalone validator and uses an implementation-agnostic abstraction of HTTP request/responses that can be adapted to any 3rd party implementation.



Adapters for validating Pact request/response expectations with the OpenAPI / Swagger validator, shortening the feedback loop when writing Consumer tests.

Includes a JUnit rule that adds OpenAPI / Swagger validation to the Pact-JVM consumer test execution.



Adapters for validating WireMock HTTP mocks against an OpenAPI / Swagger specification.

Includes a drop-in replacement for the WireMockRule that adds validation to mocked interactions, giving you confidence that your mocks reflect reality.



Adapters for validating given-when-then interactions from the REST Assured testing library against an OpenAPI / Swagger specification.

Useful for e.g. ensuring your service implementation matches its API specification.



Adapters for validating interactions using the Spring MVC Test Framework against an OpenAPI / Swagger specification.

Includes a ResultMatcher that allows you to assert your service implementation matches its API specification.



Adapter for validating interactions using the Spring Web MVC framework against an OpenAPI / Swagger specification during runtime in a production environment.

Useful for ensuring that the client requests matching the API specification.



Working code samples that demonstrate the features of the swagger-request-validator and its various adapters.

Building and testing

The project uses Maven 3.3+. We recommend using mvnvm or similar.

To build the project:

>> mvn clean install

To run the project tests:

>> mvn test


Copyright (c) 2016 Atlassian and others. Apache 2.0 licensed, see LICENSE.txt file.