openapi: 3.0.3 info: title: Architectural Design Anti Patterns API description: API providing access to a catalog of architectural design patterns, their descriptions, use cases, implementation examples, and relationships between patterns. version: 1.0.0 contact: name: API Evangelist url: https://apievangelist.com servers: - url: https://api.apievangelist.com/v1/architectural-design-patterns description: Production tags: - name: Patterns paths: /patterns: get: summary: List architectural design patterns operationId: listPatterns tags: - Patterns parameters: - name: category in: query description: Filter by pattern category schema: type: string enum: - creational - structural - behavioral - architectural - integration - data - name: tag in: query description: Filter by tag 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 design patterns content: application/json: schema: $ref: '#/components/schemas/PatternList' /patterns/{patternId}: get: summary: Get design pattern details operationId: getPattern tags: - Patterns parameters: - name: patternId in: path required: true description: The unique pattern identifier schema: type: string responses: '200': description: Design pattern details content: application/json: schema: $ref: '#/components/schemas/Pattern' '404': description: Pattern not found /patterns/{patternId}/examples: get: summary: Get implementation examples for a pattern operationId: getPatternExamples tags: - Patterns parameters: - name: patternId in: path required: true schema: type: string - name: language in: query description: Programming language for examples schema: type: string responses: '200': description: Implementation examples content: application/json: schema: $ref: '#/components/schemas/ExampleList' /patterns/{patternId}/relationships: get: summary: Get relationships for a pattern operationId: getPatternRelationships tags: - Patterns parameters: - name: patternId in: path required: true schema: type: string responses: '200': description: Pattern relationships content: application/json: schema: $ref: '#/components/schemas/RelationshipList' components: schemas: RelationshipList: type: object properties: total: type: integer relationships: type: array items: $ref: '#/components/schemas/Relationship' Relationship: type: object properties: sourcePatternId: type: string targetPatternId: type: string relationshipType: type: string enum: - uses - extends - alternative - related - conflicts description: type: string Example: type: object properties: id: type: string patternId: type: string language: type: string title: type: string description: type: string code: type: string notes: type: string PatternList: type: object properties: total: type: integer offset: type: integer limit: type: integer patterns: type: array items: $ref: '#/components/schemas/Pattern' Pattern: type: object properties: id: type: string name: type: string category: type: string description: type: string problem: type: string solution: type: string consequences: type: array items: type: string tags: type: array items: type: string relatedPatterns: type: array items: type: string applicability: type: string knownUses: type: array items: type: string ExampleList: type: object properties: total: type: integer examples: type: array items: $ref: '#/components/schemas/Example'