Updates core-principles/apiary.md

Auto commit by GitBook Editor
This commit is contained in:
apidesigner
2017-03-15 07:40:42 +00:00
parent 0e8c6586c5
commit 511d014509
6 changed files with 13 additions and 10 deletions

View File

@@ -1,7 +1,10 @@
# 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.
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)

View File

@@ -1,4 +1,4 @@
# Contract
Approved API Design, represented by its API Description, MUST represent the **contract** between API stakeholder, implementers and consumers.
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 relevant change in the contract (API Description).
Any change to an API **MUST** be accompanied by a relevant change in the contract (API Description).

View File

@@ -1,4 +1,4 @@
# Implementation Maturity
Every API design using the HTTP(S) protocol MUST use the appropriate **HTTP Request Method** ([Richardson Maturity Model Level 2](https://martinfowler.com/articles/richardsonMaturityModel.html#level2)) to implement an action afforded by a resource.
Every API design using the HTTP(S) protocol **MUST** use the appropriate **HTTP Request Method** ([Richardson Maturity Model Level 2](https://martinfowler.com/articles/richardsonMaturityModel.html#level2)) to implement an action afforded by a resource.
An API design implementation SHOULD include **hypermedia controls** (HATEOAS) ([Richardson Maturity Model Level 3](https://martinfowler.com/articles/richardsonMaturityModel.html#level3)).

View File

@@ -1,5 +1,5 @@
# Robustness
Every API implementation and API consumer MUST follow Postel's law:
Every API implementation and API consumer **MUST** follow Postel's law:
> _Be conservative in what you send, be liberal in what you accept._
>

View File

@@ -1,4 +1,4 @@
# Testing Contract Validation
Every API description (contract) using HTTP(S) protocol MUST be tested against its API implementation. The tests MUST be executed using the [Dredd testing framework](https://github.com/apiaryio/dredd). The Dredd MUST [report the test results to Apiary](https://help.apiary.io/tools/automated-testing/testing-reporter/).
Every API description (contract) using HTTP(S) protocol **MUST** be tested against its API implementation. The tests **MUST** be executed using the [Dredd testing framework](https://github.com/apiaryio/dredd). The Dredd **MUST** [report the test results to Apiary](https://help.apiary.io/tools/automated-testing/testing-reporter/).
In addition to local runs, the tests SHOULD be an integral part the API implementation's CI/CD pipeline. The CI/CD pipeline SHOULD be configured to run the test whenever there is a change to either API description (contract) or its implementation.
In addition to local runs, the tests **SHOULD** be an integral part the API implementation's CI/CD pipeline. The CI/CD pipeline **SHOULD** be configured to run the test whenever there is a change to either API description (contract) or its implementation.

View File

@@ -1,2 +1,2 @@
# 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.
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.