Skip to content
api-contract-testing logo

API Contract Testing

api-contract-testing

Verify API contracts between services to ensure compatibility and prevent breaking changes. Use for contract testing, Pact, API contract validation, schema validation, and consumer-driven contracts.

SKILL.md

Full skill instructions

API Contract Testing

Table of Contents

Overview

Contract testing verifies that APIs honor their contracts between consumers and providers. It ensures that service changes don't break dependent consumers without requiring full integration tests. Contract tests validate request/​response formats, data types, and API behavior independently.

When to Use

  • Testing microservices communication
  • Preventing breaking API changes
  • Validating API versioning
  • Testing consumer-provider contracts
  • Ensuring backward compatibility
  • Validating OpenAPI/​Swagger specifications
  • Testing third-party API integrations
  • Catching contract violations in CI

Quick Start

Minimal working example:

// tests/​pact/​user-service.pact.test.ts
import { PactV3, MatchersV3 } from "@pact-foundation/​pact";
import { UserService } from "../​../​src/​services/​UserService";

const { like, eachLike, iso8601DateTimeWithMillis } = MatchersV3;

const provider = new PactV3({
  consumer: "OrderService",
  provider: "UserService",
  port: 1234,
  dir: "./​pacts",
});

describe("User Service Contract", () => {
  const userService = new UserService("http://localhost:1234");

  describe("GET /​users/:id", () => {
    test("returns user when found", async () => {
      await provider
        .given("user with ID 123 exists")
        .uponReceiving("a request for user 123")
        .withRequest({
          method: "GET",
          path: "/​users/​123",
          headers: {
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Pact for Consumer-Driven ContractsPact for Consumer-Driven Contracts
OpenAPI Schema ValidationOpenAPI Schema Validation
JSON Schema ValidationJSON Schema Validation
REST Assured for JavaREST Assured for Java
Contract Testing with PostmanContract Testing with Postman
Pact Broker IntegrationPact Broker Integration

Best Practices

✅ DO

  • Test contracts from consumer perspective
  • Use matchers for flexible matching
  • Validate schema structure, not specific values
  • Version your contracts
  • Test error responses
  • Use Pact broker for contract sharing
  • Run contract tests in CI
  • Test backward compatibility

❌ DON'T

  • Test business logic in contract tests
  • Hard-code specific values in contracts
  • Skip error scenarios
  • Test UI in contract tests
  • Ignore contract versioning
  • Deploy without contract verification
  • Test implementation details
  • Mock contract tests

More Backend & APIs skills

Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.

2.7K 431.1K
View
prisma-database-setup logo
Backend & APIs

prisma-database-setup

Step-by-step configuration guides for Prisma ORM across PostgreSQL, MySQL, SQLite, MongoDB, SQL Server, CockroachDB, and Prisma Postgres.

67 336.1K
View
prisma-client-api logo
Backend & APIs

prisma-client-api

Complete Prisma Client API reference for model queries, CRUD operations, filtering, relations, and transactions.

67 336.1K
View
prisma-cli logo
Backend & APIs

prisma-cli

Complete reference for Prisma CLI commands, options, and workflows across setup, migrations, and database operations.

67 333.6K
View
supabase logo
Backend & APIs

supabase

Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...

2.7K 308.9K
View
neon-postgres logo
Backend & APIs

neon-postgres

Comprehensive guides and best practices for Neon Serverless Postgres, covering setup, connection methods, authentication, and platform APIs.

98 216.2K
View
firebase-auth-basics logo
Backend & APIs

firebase-auth-basics

Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.

462 163.8K
View

Coding & apps AI tools

Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View
Imagica logo
Coding & apps

Imagica

Build a no-code AI app in minutes.

Freemium
View
E
Coding & apps

Emergent.sh

An IDE for code migration from legacy to modern frameworks through coding agents.

Freemium
View
Wonder Dynamics logo
Coding & apps

Wonder Dynamics

Automate CGI animation in live-action scenes

Paid
View
M
Coding & apps

Mixo

Launch a website in seconds with AI.

Paid
View
AI Code Convert logo
Coding & apps

AI Code Convert

Streamline Your Coding Experience with AI Code Helper

Free
View