# Uniform Interface

Record: `arch:uniform-interface`
Kind: constraint
Layer: [Contracts Core](https://banes-lab.com/records/layer/contracts-core.md)
Severity: recommended
Scope: API, resource boundary
Canonical: https://banes-lab.com/ontology#arch-uniform-interface

## Repair

- Refactored by: Normalize API, Standardize Error Model
- Detected by: API lint violations
- Violated by: inconsistent verbs, response shapes, error formats
- Measured by: endpoint consistency score
- Enforced by: API style guide, OpenAPI linting

## requires

- [Consistent Semantics](https://banes-lab.com/records/lex/consistent-semantics.md)
- [Stable Contracts](https://banes-lab.com/records/lex/stable-contracts.md)

## reinforces

- [Principle of Least Surprise](https://banes-lab.com/records/arch/principle-of-least-surprise.md)

## enables

- [API Usability](https://banes-lab.com/records/lex/api-usability.md)

## conflicts-with

- [Ad-Hoc Endpoints](https://banes-lab.com/records/lex/ad-hoc-endpoints.md)
- [Chatty Interface](https://banes-lab.com/records/arch/chatty-interface.md)

## tensions-with

- [Specialized Endpoints](https://banes-lab.com/records/lex/specialized-endpoints.md)

## tensions

- [Uniform Interface Specialized Endpoints](https://banes-lab.com/records/tension/specialized-endpoints-uniform-interface.md)

## referenced-by

- [Composite Pattern](https://banes-lab.com/records/arch/composite-pattern.md)
