API Contracts
API CONTRACT, EK FORMAL AGREEMENT hai, KI, API, KYA REQUEST ACCEPT karegi, aur, KYA RESPONSE RETURN karegi — OpenAPI SPECIFICATION, ISI CONTRACT ko, MACHINE-READABLE FORMAT mein, DOCUMENT karta hai. CONSUMER-DRIVEN CONTRACTS (jaise Pact) mein, API CONSUMERS, APNI EXPECTATIONS, EXPLICITLY, DEFINE karte hain, aur PROVIDER, INKE AGAINST, TEST hota hai.
API-FIRST DESIGN, EK APPROACH hai, JAHA, CONTRACT (OpenAPI SPEC), CODE LIKHNE SE, PEHLE, DESIGN kiya jaata hai — FRONTEND aur BACKEND TEAMS, EK SAATH, CONTRACT PAR, AGREE karके, PARALLEL mein, KAAM SHURU kar sakti hain, BINA, EK-DUSRE ka, WAIT KIYE.
# OpenAPI spec (contract-first) — API design SE, code SE, PEHLE:
openapi: 3.0.0
paths:
/products/{id}:
get:
parameters:
- name: id
in: path
required: true
schema: { type: integer }
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
# Is CONTRACT SE, Java interfaces, AUTOMATICALLY, GENERATE ki ja sakti hain
# (openapi-generator tool se), aur developers, INHE IMPLEMENT karte hain- API contract = formal agreement, request/response shape ke baare mein
- Consumer-driven contracts (Pact) = consumer expectations, EXPLICITLY test hoती hain
- API-first design = contract, code se PEHLE — teams, PARALLEL kaam kar sakti hain
openapi-generator-maven-plugin jaise, TOOLS SE, OpenAPI SPEC (YAML/JSON) SE, CLIENT SDKs (jaise, TypeScript, Java, Python CLIENTS), AUTOMATICALLY, GENERATE ki ja sakti hain — FRONTEND/CONSUMER TEAMS ko, MANUALLY, API CALLS, LIKHNE ki, ZAROORAT NAHI.
SCHEMA VALIDATION (jaise, JSON Schema SE, RESPONSE, VALIDATE karna), EK, SIMPLER, ALTERNATIVE hai, CONTRACT TESTING (Pact) SE — LESS, POWERFUL (CONSUMER-SPECIFIC, EXPECTATIONS, EXPRESS NAHI kar sakta), LEKIN, SETUP karna, EASIER hai.
- Schema validation = SIMPLER, response structure CHECK karta hai
- Contract testing (Pact) = MORE powerful, consumer-specific expectations