# API Guidelines

## API Guidelines

- [adidas API Guidelines](https://adidas.gitbook.io/api-guidelines/readme.md)
- [Introduction](https://adidas.gitbook.io/api-guidelines/general-guidelines/general-guidelines.md)
- [API First](https://adidas.gitbook.io/api-guidelines/general-guidelines/api-first.md)
- [Contract](https://adidas.gitbook.io/api-guidelines/general-guidelines/contract.md)
- [Immutability](https://adidas.gitbook.io/api-guidelines/general-guidelines/c_immutability.md)
- [Robustness](https://adidas.gitbook.io/api-guidelines/general-guidelines/robustness.md)
- [Common Data Types](https://adidas.gitbook.io/api-guidelines/general-guidelines/d_data_types.md)
- [Version Control System](https://adidas.gitbook.io/api-guidelines/general-guidelines/version-control-system.md)
- [Minimal API Surface](https://adidas.gitbook.io/api-guidelines/general-guidelines/minimal-api-surface.md)
- [Rules for Extending](https://adidas.gitbook.io/api-guidelines/general-guidelines/rules-for-extending.md)
- [JSON](https://adidas.gitbook.io/api-guidelines/general-guidelines/json.md)
- [Security](https://adidas.gitbook.io/api-guidelines/general-guidelines/security.md)
- [Tooling](https://adidas.gitbook.io/api-guidelines/general-guidelines/n_tooling.md)
- [Introduction](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/rest.md)
- [Core REST Principles](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/core-principles.md)
- [OpenAPI Specification](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/core-principles/openapi-specification.md)
- [API Design Platform](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/core-principles/design-platform.md)
- [Design Maturity](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/core-principles/design-maturity.md)
- [Testing](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/core-principles/testing.md)
- [Protocol](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/protocol.md)
- [HTTP](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/protocol/http.md)
- [TLS](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/protocol/tls.md)
- [Separate Concerns](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/protocol/separate-concerns.md)
- [Request Methods](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/protocol/use-appropriate-methods.md)
- [Status Codes](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/protocol/use-appropriate-status-codes.md)
- [Message](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/message.md)
- [Message Formats](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/message/message-formats.md)
- [Content Negotiation](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/message/content-negotiation.md)
- [HAL](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/message/hal.md)
- [Problem Detail](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/message/error-reporting.md)
- [Foreign Key Relations](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/message/foreign-key-relations.md)
- [Application](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/application.md)
- [Corporate Data Model](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/application/harmonize-data.md)
- [Common Data Types](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/application/common-data-types.md)
- [Execution](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution.md)
- [Pagination](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/pagination.md)
- [Long Running Tasks](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/long-running-tasks.md)
- [Polling](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/long-running-tasks/polling.md)
- [Callback](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/long-running-tasks/callback.md)
- [Files Upload](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/long-running-tasks/files-upload.md)
- [Batch Operations](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/batch-operations.md)
- [Search Requests](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/search-requests.md)
- [Query Requests with Large Inputs](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/query-requests-with-large-inputs.md)
- [Choosing Fields and Embedded Resources](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/choosing-fields-and-embedded-resoruces.md)
- [Localization](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/localization.md)
- [Rate Limiting](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/rate-limiting.md)
- [Caching](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/caching.md)
- [Testing Enviroments](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/execution/testing-enviroments.md)
- [Evolution](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/evolution.md)
- [Naming Conventions](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/evolution/naming-conventions.md)
- [Reserved Identifiers](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/evolution/reserved-identifiers.md)
- [URI Structure](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/evolution/uri-structure.md)
- [Changes and Versioning](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/evolution/versioning.md)
- [Phasing out Old Versions](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/evolution/phasing-out-old-versions.md)
- [Guides](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/guides.md)
- [API Testing CI Environment](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/guides/api-testing-ci-environment.md)
- [Complete API Development](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/guides/complete-api-development.md)
- [API Clients](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/clients.md)
- [Loose Coupling](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/clients/loose-coupling.md)
- [Further References](https://adidas.gitbook.io/api-guidelines/rest-api-guidelines/miscellaneous.md)
- [Introduction](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/a_introduction.md)
- [Core Asynchronous Principles](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles.md)
- [Event Driven Architectures](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/b_basic_concepts_edas.md)
- [Messages](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/messages.md)
- [Commands](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/messages/commands.md)
- [Queries](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/messages/query.md)
- [Events](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/messages/d_basic_concepts_events.md)
- [Events as Notifications](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/messages/d_basic_concepts_events/events-as-notifications.md)
- [Events to Replicate Data](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/messages/d_basic_concepts_events/events-to-replicate-data.md)
- [Protocols](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/j_protocols.md)
- [Coupling](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/coupling.md)
- [Bounded Context](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/bounded-context.md)
- [Stream Processing](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/stream-processing.md)
- [Naming Conventions](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/i_naming_conventions.md)
- [Tooling](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/tooling.md)
- [Editors](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/tooling/editors.md)
- [Command Line Interface (CLI)](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/tooling/command-line-interface-cli.md)
- [Generators](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/core-asynchronous-principles/tooling/generators.md)
- [Kafka Asynchronous Guidelines](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines.md)
- [Introduction](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/a_introduction.md)
- [Why AsyncAPI?](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/a_introduction/why-asyncapi.md)
- [AsyncAPI Version](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/b_asyncapi_version.md)
- [Internal vs Public Specifications](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/c_internal_public_specs.md)
- [Key/Value Format](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/g_key_value_format.md)
- [Message Headers](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/h_message_headers.md)
- [Specification Granularity](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/d_spec_granularity.md)
- [Self-Contained Specifications](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_self_contained_specs.md)
- [Meaningful Descriptions](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_self_contained_specs/e_meaningful_descriptions.md)
- [Schema Data Evolution](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_schema_data_evolution.md)
- [Backward Compatibility](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_schema_data_evolution/backward-compatibility.md)
- [Forward Compatibility](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_schema_data_evolution/forward-compatibility.md)
- [Full Compatibility](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_schema_data_evolution/full-compatibility.md)
- [Automatic Schema Registration](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/e_schema_registration.md)
- [Contact Information](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/g_contact_information.md)
- [AsyncAPI ID](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/h_asyncapi_id.md)
- [Servers](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/i_servers.md)
- [Channels](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/j_channels.md)
- [Schemas](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/k_schemas.md)
- [Security Schemes](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/l_security_schemes.md)
- [External Docs](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/m_external_docs.md)
