openapi: 3.0.3 info: title: Architecture Pattern Domains Patterns API description: API providing access to a curated reference library of architecture patterns for distributed systems, microservices, cloud-native applications, and enterprise software. version: 1.0.0 contact: name: API Evangelist url: https://apievangelist.com servers: - url: https://api.apievangelist.com/v1/architecture-patterns description: Production tags: - name: Patterns paths: /patterns: get: summary: List architecture patterns operationId: listPatterns tags: - Patterns parameters: - name: domain in: query description: Filter by pattern domain schema: type: string enum: - microservices - distributed-systems - cloud-native - enterprise - data - messaging - security - name: tag in: query schema: type: string - name: limit in: query schema: type: integer default: 20 - name: offset in: query schema: type: integer default: 0 responses: '200': description: List of architecture patterns content: application/json: schema: $ref: '#/components/schemas/PatternList' /patterns/{patternId}: get: summary: Get architecture pattern details operationId: getPattern tags: - Patterns parameters: - name: patternId in: path required: true description: The unique pattern identifier schema: type: string responses: '200': description: Pattern details content: application/json: schema: $ref: '#/components/schemas/Pattern' '404': description: Pattern not found /patterns/{patternId}/variants: get: summary: Get variants of an architecture pattern operationId: getPatternVariants tags: - Patterns parameters: - name: patternId in: path required: true schema: type: string responses: '200': description: Pattern variants content: application/json: schema: $ref: '#/components/schemas/PatternList' components: schemas: Pattern: type: object properties: id: type: string name: type: string domain: type: string description: type: string context: type: string problem: type: string solution: type: string resultingContext: type: string tags: type: array items: type: string relatedPatterns: type: array items: type: string externalReferences: type: array items: type: string confidence: type: string enum: - proven - candidate - experimental PatternList: type: object properties: total: type: integer offset: type: integer limit: type: integer patterns: type: array items: $ref: '#/components/schemas/Pattern'