HTTPS SSH

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.

Usage

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.

<dependency>
    <groupId>com.atlassian.oai</groupId>
    <artifactId>swagger-request-validator-core</artifactId>
    <version>${swagger-request-validator.version}</version>
</dependency>

Project structure

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

swagger-request-validator-core

maven-central

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.

swagger-request-validator-pact

maven-central

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.

swagger-request-validator-wiremock

maven-central

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.

swagger-request-validator-restassured

maven-central

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.

swagger-request-validator-mockmvc

maven-central

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.

swagger-request-validator-springmvc

maven-central

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.

swagger-request-validator-examples

maven-central

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

License

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