diff --git a/README.md b/README.md index a12be97..e437eae 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,30 @@ ![adidas logo](https://adidas-group.gitbooks.io/api-guidelines/content/assets/adidas-logo.svg) # adidas API Guidelines -_Guidelines for API design at adidas_ ([Read online at GitBook](https://adidas-group.gitbooks.io/api-guidelines/content/)) + +_Guidelines for API design at adidas_ \([Read online at GitBook](https://adidas-group.gitbooks.io/api-guidelines/content/)\) ## Motivation + The goal of this document is to facilitate the work and minimize the effort of all API users while protecting their investment and encouraging API adoption. The guidelines lay down the foundation for collaboration, stability, and extensibility. ## Guidelines -The API Guidelines are split into several levels: -- **[Core Principles](https://adidas-group.gitbooks.io/api-guidelines/content/core-principles/)** +The API Guidelines are split into two main parts: - Core Principles define the general rules that MUST be followed at throughout the full API lifecycle at any level. +* [General Guidelines](/general-guidelines/README.md) +* API type-specific Guidelines + * [REST APIs Guidelines](/rest/README.md) + * [Kafka Guidelines](/kafka/README.md) -- **Functionality Guidelines** - - **[Protocol level](https://adidas-group.gitbooks.io/api-guidelines/content/protocol/)** - - Protocol guidelines define the protocols used within the organization. - - - **[Message level](https://adidas-group.gitbooks.io/api-guidelines/content/message/)** - - The Message guidelines define the structure and semantics of messages used to exchange information. +The general guidelines section discusses the core principles relevant to any kind of API. The API type-specific section further defines the guidelines specific to a given architectural style or API technique \(such as REST, Kafka or GraphQL API\). - - **[Application level](https://adidas-group.gitbooks.io/api-guidelines/content/application/)** - - The Application guidelines define the definition and use of application-specific semantics. - -- **Quality Guidelines** - - Evolution and Execution guidelines define the rules for achieving the desired architectural qualities of systems. - - - **[Evolution](https://adidas-group.gitbooks.io/api-guidelines/content/evolution/)** - - Evolution qualities governance, such as testability, maintainability, extensibility, and scalability. +## How to read the Guidelines - - **[Execution](https://adidas-group.gitbooks.io/api-guidelines/content/execution/)** - - Execution qualities governance, such as security and usability. - - -## How to read the Guidelines These Guidelines are available for online reading at [GitBook](https://apidesigner.gitbooks.io/adidas-api-guidelines/content/) its source can be found on [GitHub](https://github.com/adidas-group/api-guidelines). - The CAPITALIZED words throughout these guidelines have a special meaning: > ``` @@ -55,6 +35,7 @@ The CAPITALIZED words throughout these guidelines have a special meaning: Refer to [RFC2119](https://www.ietf.org/rfc/rfc2119) for details. -## Questions & Comments +## Questions & Comments + +_Please contact _[_Zdenek.Nemec@externals.adidas-group.com_](mailto:Zdenek.Nemec@externals.adidas-group.com)_ in the case of questions._ -_Please contact [Zdenek.Nemec@externals.adidas-group.com](mailto:Zdenek.Nemec@externals.adidas-group.com) in the case of questions._ diff --git a/SUMMARY.md b/SUMMARY.md index 1facd27..ecc82e7 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,56 +1,70 @@ # Summary -* [Introduction](README.md) -* [Core Principles](core-principles/README.md) - * [API First](core-principles/api-first.md) - * [OpenAPI Specification](core-principles/openapi-specification.md) - * [API Design Platform](core-principles/apiary.md) - * [Version Control System](core-principles/version-control-system.md) - * [Contract](core-principles/contract.md) - * [Testing](core-principles/testing.md) - * [Design Maturity](core-principles/design-maturity.md) - * [Robustness](core-principles/robustness.md) - * [Minimal API Surface](core-principles/minimal-api-surface.md) - * [Rules for Extending](core-principles/rules-for-extending.md) -* [Protocol](protocol/README.md) - * [HTTP](protocol/http.md) - * [TLS](protocol/tls.md) - * [Separate Concerns](protocol/separate-concerns.md) - * [Request Methods](protocol/use-appropriate-methods.md) - * [Status Codes](protocol/use-appropriate-status-codes.md) -* [Message](message/README.md) - * [Message Formats](message/message-formats.md) - * [Content Negotiation](message/content-negotiation.md) - * [HAL](message/hal.md) - * [Problem Detail](message/error-reporting.md) - * [Foreign Key Relations](message/foreign-key-relations.md) -* [Application](application/README.md) - * [Corporate Data Model](application/harmonize-data.md) - * [Common Data Types](application/common-data-types.md) -* [Evolution](evolution/README.md) - * [Naming Conventions](evolution/naming-conventions.md) - * [Reserved Identifiers](evolution/reserved-identifiers.md) - * [JSON](evolution/json.md) - * [Changes and Versioning](evolution/versioning.md) - * [URI Structure](evolution/uri-structure.md) - * [Testing Enviroments](execution/testing-enviroments.md) -* [Execution](execution/README.md) - * [Pagination](execution/pagination.md) - * [Asynchronous Tasks](execution/asynchronous-tasks.md) - * [Batch Operations](execution/batch-operations.md) - * [Search Requests](execution/search-requests.md) - * [Query Requests with Large Inputs](execution/query-requests-with-large-inputs.md) - * [Choosing Fields and Embedded Resources](execution/choosing-fields-and-embedded-resoruces.md) - * [Localization](execution/localization.md) - * [Security](execution/security.md) - * [Rate Limiting](execution/rate-limiting.md) - * [Caching](execution/caching.md) -* [API Clients](clients/README.md) - * [Loose Coupling](clients/loose-coupling.md) -* [Guides](guides/README.md) - * [API Testing CI Environment](guides/api-testing-ci-environment.md) - * [Complete API Development](guides/complete-api-development.md) -* [Examples](examples.md) -* [Miscellaneous](miscellaneous.md) -* [Acknowledgements](acknowledgements.md) +## Introduction + +* [adidas API Guidelines](README.md) + +## General Guidelines + +* [Introduction](general-guidelines/README.md) +* [API First](general-guidelines/api-first.md) +* [Contract](general-guidelines/contract.md) +* [Robustness](general-guidelines/robustness.md) +* [Version Control System](general-guidelines/version-control-system.md) +* [Minimal API Surface](general-guidelines/minimal-api-surface.md) +* [Rules for Extending](general-guidelines/rules-for-extending.md) +* [JSON](general-guidelines/json.md) +* [Security](general-guidelines/security.md) + +## REST API Guidelines + +* [Introduction](rest/README.md) +* [Core Principles](rest/core-principles/README.md) + * [OpenAPI Specification](rest/core-principles/openapi-specification.md) + * [API Design Platform](rest/core-principles/apiary.md) + * [Design Maturity](rest/core-principles/design-maturity.md) + * [Testing](rest/core-principles/testing.md) +* [Functionality](core-principles/functional.md) + * [Protocol](rest/protocol/README.md) + * [HTTP](rest/protocol/http.md) + * [TLS](rest/protocol/tls.md) + * [Separate Concerns](rest/protocol/separate-concerns.md) + * [Request Methods](rest/protocol/use-appropriate-methods.md) + * [Status Codes](rest/protocol/use-appropriate-status-codes.md) + * [Message](rest/message/README.md) + * [Message Formats](rest/message/message-formats.md) + * [Content Negotiation](rest/message/content-negotiation.md) + * [HAL](rest/message/hal.md) + * [Problem Detail](rest/message/error-reporting.md) + * [Foreign Key Relations](rest/message/foreign-key-relations.md) + * [Application](rest/application/README.md) + * [Corporate Data Model](rest/application/harmonize-data.md) + * [Common Data Types](rest/application/common-data-types.md) +* [Quality](rest/core-principles/quality.md) + * [Execution](rest/execution/README.md) + * [Pagination](rest/execution/pagination.md) + * [Asynchronous Tasks](rest/execution/asynchronous-tasks.md) + * [Batch Operations](rest/execution/batch-operations.md) + * [Search Requests](rest/execution/search-requests.md) + * [Query Requests with Large Inputs](rest/execution/query-requests-with-large-inputs.md) + * [Choosing Fields and Embedded Resources](rest/execution/choosing-fields-and-embedded-resoruces.md) + * [Localization](rest/execution/localization.md) + * [Rate Limiting](rest/execution/rate-limiting.md) + * [Caching](rest/execution/caching.md) + * [Evolution](rest/evolution/README.md) + * [Naming Conventions](rest/evolution/naming-conventions.md) + * [Reserved Identifiers](rest/evolution/reserved-identifiers.md) + * [URI Structure](rest/evolution/uri-structure.md) + * [Changes and Versioning](rest/evolution/versioning.md) + * [Testing Enviroments](rest/execution/testing-enviroments.md) +* [Guides](rest/guides/README.md) + * [API Testing CI Environment](rest/guides/api-testing-ci-environment.md) + * [Complete API Development](rest/guides/complete-api-development.md) +* [API Clients](rest/clients/README.md) + * [Loose Coupling](rest/clients/loose-coupling.md) +* [Further References](rest/miscellaneous.md) + +## Kafka Guidelines + +* [Introduction](kafka/README.md) diff --git a/core-principles/apiary.md b/core-principles/apiary.md deleted file mode 100644 index 33b1e08..0000000 --- a/core-principles/apiary.md +++ /dev/null @@ -1,11 +0,0 @@ -# API Design Platform - Apiary - -1. [Apiary](https://apiary.io/) is the primary platform supporting [API first approach](./api-first.md). Apiary **MUST** be used during API Design. - -1. Every API description **MUST** be stored in [Apiary](https://apiary.io/) under the ADIDAS GROUP team. - -1. Apiary **MUST** be the **single source of truth** to learn about existing APIs within the organization. - -> NOTE: Apiary supports API-first approach in multiple ways: - a. Validates API description for correctness and automatically generates API documentation to drive the discussion between stakeholders. (No more emails with API description flying between stakeholders) - diff --git a/core-principles/contract.md b/core-principles/contract.md deleted file mode 100644 index a96c25e..0000000 --- a/core-principles/contract.md +++ /dev/null @@ -1,4 +0,0 @@ -# Contract -Approved API Design, represented by its API Description, **MUST** represent the **contract** between API stakeholder, implementers, and consumers. - -Any change to an API **MUST** be accompanied by a related update to the contract (API Description). diff --git a/core-principles/version-control-system.md b/core-principles/version-control-system.md deleted file mode 100644 index 78334f9..0000000 --- a/core-principles/version-control-system.md +++ /dev/null @@ -1,7 +0,0 @@ -# Version Control System -Every API description **SHOULD** be stored in a Version Control System (Bitbucket, GitHub). Where possible the API description **SHOULD** stored in the **same** repository as the API implementation. - -> NOTE: The synchronization between the version control system and adidas [API Description platform](./apiary.md) - should be automated using CI/CD framework. - - diff --git a/general-guidelines/README.md b/general-guidelines/README.md new file mode 100644 index 0000000..760c9ee --- /dev/null +++ b/general-guidelines/README.md @@ -0,0 +1,6 @@ +# ![](/assets/adidas-logo.svg) + +# adidas General API Guidelines + +Set of general rules and recommendations that have to be followed along the entire API lifecycle of any API regardless of its type. + diff --git a/core-principles/api-first.md b/general-guidelines/api-first.md similarity index 62% rename from core-principles/api-first.md rename to general-guidelines/api-first.md index a712717..03a1353 100644 --- a/core-principles/api-first.md +++ b/general-guidelines/api-first.md @@ -4,7 +4,7 @@ Everyone **MUST** follow the **API First** principle. The API first principle is an extension of contract-first principle. Therefore, a development of an API **MUST** always start with API design without any upfront coding activities. -**API description is the master of truth, not the API implementation.** +**API design **\(e.g., description, schema\)** is the master of truth, not the API implementation.** -API implementation **MUST** always be compliant to particular API description which represents the [contract](./contract.md) between API, and it's consumer. +API implementation **MUST** always be compliant to particular API design which represents the [contract](./contract.md) between API, and it's consumer. diff --git a/general-guidelines/contract.md b/general-guidelines/contract.md new file mode 100644 index 0000000..f960c23 --- /dev/null +++ b/general-guidelines/contract.md @@ -0,0 +1,6 @@ +# Contract + +Approved API Design, represented by its API Description or schema, **MUST** represent the **contract** between API stakeholder, implementers, and consumers. + +Any change to an API **MUST** be accompanied by a related update to the contract \(API Design\). + diff --git a/general-guidelines/introduction.md b/general-guidelines/introduction.md new file mode 100644 index 0000000..e69de29 diff --git a/evolution/json.md b/general-guidelines/json.md similarity index 100% rename from evolution/json.md rename to general-guidelines/json.md diff --git a/core-principles/minimal-api-surface.md b/general-guidelines/minimal-api-surface.md similarity index 82% rename from core-principles/minimal-api-surface.md rename to general-guidelines/minimal-api-surface.md index 7c39b01..507ace1 100644 --- a/core-principles/minimal-api-surface.md +++ b/general-guidelines/minimal-api-surface.md @@ -1,2 +1,2 @@ # Minimal API Surface -Every API design **MUST** aim for a minimal API surface without sacrificing on product requirements. API design **SHOULD NOT** include unnecessary resources, relations, actions or data. API design **SHOULD NOT** add functionality until deemed necessary ([YAGNI principle](https://martinfowler.com/bliki/Yagni.html)). \ No newline at end of file +Every API design **MUST** aim for a minimal API surface without sacrificing on product requirements. API design **SHOULD NOT** include unnecessary resources, relations, actions or data. API design **SHOULD NOT** add functionality until deemed necessary ([YAGNI principle](https://martinfowler.com/bliki/Yagni.html)). diff --git a/core-principles/robustness.md b/general-guidelines/robustness.md similarity index 100% rename from core-principles/robustness.md rename to general-guidelines/robustness.md diff --git a/core-principles/rules-for-extending.md b/general-guidelines/rules-for-extending.md similarity index 100% rename from core-principles/rules-for-extending.md rename to general-guidelines/rules-for-extending.md diff --git a/execution/security.md b/general-guidelines/security.md similarity index 100% rename from execution/security.md rename to general-guidelines/security.md diff --git a/general-guidelines/version-control-system.md b/general-guidelines/version-control-system.md new file mode 100644 index 0000000..7bf6bbd --- /dev/null +++ b/general-guidelines/version-control-system.md @@ -0,0 +1,4 @@ +# Version Control System + +Every API design **SHOULD** be stored in a Version Control System \(Bitbucket, GitHub\). Where possible the API design **SHOULD** stored in the **same** repository as the API implementation. + diff --git a/kafka/README.md b/kafka/README.md new file mode 100644 index 0000000..9191687 --- /dev/null +++ b/kafka/README.md @@ -0,0 +1,6 @@ +# ![](/assets/adidas-logo.svg) + +# adidas Kafka Guidelines + + + diff --git a/miscellaneous.md b/miscellaneous.md deleted file mode 100644 index 8db1862..0000000 --- a/miscellaneous.md +++ /dev/null @@ -1,4 +0,0 @@ -# Miscellaneous - -- [Product tokens](https://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-6.3) -- [Deprecating "X-"](https://tools.ietf.org/html/rfc6648) \ No newline at end of file diff --git a/rest/README.md b/rest/README.md new file mode 100644 index 0000000..b5f7415 --- /dev/null +++ b/rest/README.md @@ -0,0 +1,47 @@ +# ![](/assets/adidas-logo.svg) + +# adidas REST API Guidelines + +The adidas REST API Guidelines defines standards and guidelines for building REST APIs at adidas. **These Guidelines has to be followed in addition to the adidas **[**General API Guidelines.**](/general-guidelines/README.md) + +The REST API Guidelines are further split into the following parts: + +* **Core Principles** + + REST API Guidelines Core Principles defines the rules that **MUST** be followed at throughout the full API lifecycle. + +* **Functionality Guidelines** + + * [**Protocol level**](https://adidas-group.gitbooks.io/api-guidelines/content/protocol/) + + Protocol guidelines define the protocols used within the organization. + + * [**Message level**](https://adidas-group.gitbooks.io/api-guidelines/content/message/) + + The Message guidelines define the structure and semantics of messages used to exchange information. + + * [**Application level**](https://adidas-group.gitbooks.io/api-guidelines/content/application/) + + The Application guidelines define the definition and use of application-specific semantics. + +* **Quality Guidelines** + + Evolution and Execution guidelines define the rules for achieving the desired architectural qualities of systems. + + * [**Evolution**](https://adidas-group.gitbooks.io/api-guidelines/content/evolution/) + + Evolution qualities governance, such as testability, maintainability, extensibility, and scalability. + + * [**Execution**](https://adidas-group.gitbooks.io/api-guidelines/content/execution/) + + Execution qualities governance, such as security and usability. + +* **Guides** + Guides and materials supporting the REST API Guidelines + +* **API Clients** + + Section dedicated to consumers of adidas APIs + + + diff --git a/application/README.md b/rest/application/README.md similarity index 100% rename from application/README.md rename to rest/application/README.md diff --git a/application/common-data-types.md b/rest/application/common-data-types.md similarity index 100% rename from application/common-data-types.md rename to rest/application/common-data-types.md diff --git a/application/harmonize-data.md b/rest/application/harmonize-data.md similarity index 100% rename from application/harmonize-data.md rename to rest/application/harmonize-data.md diff --git a/clients/README.md b/rest/clients/README.md similarity index 100% rename from clients/README.md rename to rest/clients/README.md diff --git a/clients/loose-coupling.md b/rest/clients/loose-coupling.md similarity index 100% rename from clients/loose-coupling.md rename to rest/clients/loose-coupling.md diff --git a/core-principles/README.md b/rest/core-principles/README.md similarity index 100% rename from core-principles/README.md rename to rest/core-principles/README.md diff --git a/rest/core-principles/api-first.md b/rest/core-principles/api-first.md new file mode 100644 index 0000000..e69de29 diff --git a/rest/core-principles/apiary.md b/rest/core-principles/apiary.md new file mode 100644 index 0000000..aa4985e --- /dev/null +++ b/rest/core-principles/apiary.md @@ -0,0 +1,16 @@ +# API Design Platform - Apiary + +1. [Apiary](https://apiary.io/) is the primary platform supporting [API first approach](./api-first.md). Apiary **MUST** be used during API Design. + +2. Every API description **MUST** be stored in [Apiary](https://apiary.io/) under the ADIDAS GROUP team. + +3. Apiary **MUST** be the **single source of truth** to learn about existing APIs within the organization. + +> NOTE: Apiary supports API-first approach in multiple ways: +> a. Validates API description for correctness and automatically generates API documentation to drive the discussion between stakeholders. \(No more emails with API description flying between stakeholders\) +> +> NOTE: The synchronization between the version control system and adidas [API Description platform](./apiary.md) +> should be automated using CI/CD framework. + + + diff --git a/rest/core-principles/contract.md b/rest/core-principles/contract.md new file mode 100644 index 0000000..e69de29 diff --git a/rest/core-principles/core-principles.md b/rest/core-principles/core-principles.md new file mode 100644 index 0000000..e69de29 diff --git a/core-principles/design-maturity.md b/rest/core-principles/design-maturity.md similarity index 100% rename from core-principles/design-maturity.md rename to rest/core-principles/design-maturity.md diff --git a/rest/core-principles/introduction.md b/rest/core-principles/introduction.md new file mode 100644 index 0000000..e69de29 diff --git a/core-principles/openapi-specification.md b/rest/core-principles/openapi-specification.md similarity index 100% rename from core-principles/openapi-specification.md rename to rest/core-principles/openapi-specification.md diff --git a/rest/core-principles/quality.md b/rest/core-principles/quality.md new file mode 100644 index 0000000..e69de29 diff --git a/core-principles/testing.md b/rest/core-principles/testing.md similarity index 100% rename from core-principles/testing.md rename to rest/core-principles/testing.md diff --git a/rest/core-principles/version-control-system.md b/rest/core-principles/version-control-system.md new file mode 100644 index 0000000..e69de29 diff --git a/evolution/README.md b/rest/evolution/README.md similarity index 100% rename from evolution/README.md rename to rest/evolution/README.md diff --git a/rest/evolution/json.md b/rest/evolution/json.md new file mode 100644 index 0000000..e69de29 diff --git a/evolution/naming-conventions.md b/rest/evolution/naming-conventions.md similarity index 100% rename from evolution/naming-conventions.md rename to rest/evolution/naming-conventions.md diff --git a/evolution/reserved-identifiers.md b/rest/evolution/reserved-identifiers.md similarity index 100% rename from evolution/reserved-identifiers.md rename to rest/evolution/reserved-identifiers.md diff --git a/evolution/uri-structure.md b/rest/evolution/uri-structure.md similarity index 100% rename from evolution/uri-structure.md rename to rest/evolution/uri-structure.md diff --git a/evolution/versioning.md b/rest/evolution/versioning.md similarity index 100% rename from evolution/versioning.md rename to rest/evolution/versioning.md diff --git a/examples.md b/rest/examples.md similarity index 100% rename from examples.md rename to rest/examples.md diff --git a/execution/README.md b/rest/execution/README.md similarity index 100% rename from execution/README.md rename to rest/execution/README.md diff --git a/execution/api-keys.md b/rest/execution/api-keys.md similarity index 100% rename from execution/api-keys.md rename to rest/execution/api-keys.md diff --git a/execution/asynchronous-tasks.md b/rest/execution/asynchronous-tasks.md similarity index 100% rename from execution/asynchronous-tasks.md rename to rest/execution/asynchronous-tasks.md diff --git a/execution/authentication.md b/rest/execution/authentication.md similarity index 100% rename from execution/authentication.md rename to rest/execution/authentication.md diff --git a/execution/batch-operations.md b/rest/execution/batch-operations.md similarity index 100% rename from execution/batch-operations.md rename to rest/execution/batch-operations.md diff --git a/execution/caching.md b/rest/execution/caching.md similarity index 100% rename from execution/caching.md rename to rest/execution/caching.md diff --git a/execution/choosing-fields-and-embedded-resoruces.md b/rest/execution/choosing-fields-and-embedded-resoruces.md similarity index 100% rename from execution/choosing-fields-and-embedded-resoruces.md rename to rest/execution/choosing-fields-and-embedded-resoruces.md diff --git a/execution/localization.md b/rest/execution/localization.md similarity index 100% rename from execution/localization.md rename to rest/execution/localization.md diff --git a/execution/pagination.md b/rest/execution/pagination.md similarity index 100% rename from execution/pagination.md rename to rest/execution/pagination.md diff --git a/execution/query-requests-with-large-inputs.md b/rest/execution/query-requests-with-large-inputs.md similarity index 100% rename from execution/query-requests-with-large-inputs.md rename to rest/execution/query-requests-with-large-inputs.md diff --git a/execution/rate-limiting.md b/rest/execution/rate-limiting.md similarity index 100% rename from execution/rate-limiting.md rename to rest/execution/rate-limiting.md diff --git a/execution/search-requests.md b/rest/execution/search-requests.md similarity index 100% rename from execution/search-requests.md rename to rest/execution/search-requests.md diff --git a/rest/execution/security.md b/rest/execution/security.md new file mode 100644 index 0000000..e69de29 diff --git a/execution/testing-enviroments.md b/rest/execution/testing-enviroments.md similarity index 100% rename from execution/testing-enviroments.md rename to rest/execution/testing-enviroments.md diff --git a/guides/README.md b/rest/guides/README.md similarity index 100% rename from guides/README.md rename to rest/guides/README.md diff --git a/guides/api-testing-ci-environment.md b/rest/guides/api-testing-ci-environment.md similarity index 100% rename from guides/api-testing-ci-environment.md rename to rest/guides/api-testing-ci-environment.md diff --git a/guides/complete-api-development.md b/rest/guides/complete-api-development.md similarity index 100% rename from guides/complete-api-development.md rename to rest/guides/complete-api-development.md diff --git a/message/README.md b/rest/message/README.md similarity index 100% rename from message/README.md rename to rest/message/README.md diff --git a/message/content-negotiation.md b/rest/message/content-negotiation.md similarity index 100% rename from message/content-negotiation.md rename to rest/message/content-negotiation.md diff --git a/message/error-reporting.md b/rest/message/error-reporting.md similarity index 100% rename from message/error-reporting.md rename to rest/message/error-reporting.md diff --git a/message/foreign-key-relations.md b/rest/message/foreign-key-relations.md similarity index 100% rename from message/foreign-key-relations.md rename to rest/message/foreign-key-relations.md diff --git a/message/hal.md b/rest/message/hal.md similarity index 100% rename from message/hal.md rename to rest/message/hal.md diff --git a/message/message-formats.md b/rest/message/message-formats.md similarity index 100% rename from message/message-formats.md rename to rest/message/message-formats.md diff --git a/rest/miscellaneous.md b/rest/miscellaneous.md new file mode 100644 index 0000000..512f5bb --- /dev/null +++ b/rest/miscellaneous.md @@ -0,0 +1,7 @@ +# Miscellaneous + +* [Product tokens](https://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-6.3) +* [Deprecating "X-"](https://tools.ietf.org/html/rfc6648) + + + diff --git a/protocol/README.md b/rest/protocol/README.md similarity index 100% rename from protocol/README.md rename to rest/protocol/README.md diff --git a/protocol/http.md b/rest/protocol/http.md similarity index 100% rename from protocol/http.md rename to rest/protocol/http.md diff --git a/protocol/know-your-http.md b/rest/protocol/know-your-http.md similarity index 100% rename from protocol/know-your-http.md rename to rest/protocol/know-your-http.md diff --git a/rest/protocol/message.md b/rest/protocol/message.md new file mode 100644 index 0000000..e69de29 diff --git a/rest/protocol/protocol.md b/rest/protocol/protocol.md new file mode 100644 index 0000000..e69de29 diff --git a/protocol/separate-concerns.md b/rest/protocol/separate-concerns.md similarity index 100% rename from protocol/separate-concerns.md rename to rest/protocol/separate-concerns.md diff --git a/protocol/tls.md b/rest/protocol/tls.md similarity index 100% rename from protocol/tls.md rename to rest/protocol/tls.md diff --git a/protocol/use-appropriate-methods.md b/rest/protocol/use-appropriate-methods.md similarity index 100% rename from protocol/use-appropriate-methods.md rename to rest/protocol/use-appropriate-methods.md diff --git a/protocol/use-appropriate-status-codes.md b/rest/protocol/use-appropriate-status-codes.md similarity index 100% rename from protocol/use-appropriate-status-codes.md rename to rest/protocol/use-appropriate-status-codes.md