diff --git a/SUMMARY.md b/SUMMARY.md index dddc88e..24f881c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -12,4 +12,7 @@ * [Implementation Maturity](core-principles/implementation-maturity.md) * [Robustness](core-principles/robustness.md) * [Minimal API Surface](core-principles/minimal-api-surface.md) + * [Loose Coupling](core-principles/loose-coupling.md) + * [Versioning](core-principles/versioning.md) + * [Rules for Extending](core-principles/rules-for-extending.md) diff --git a/core-principles/loose-coupling.md b/core-principles/loose-coupling.md new file mode 100644 index 0000000..d186503 --- /dev/null +++ b/core-principles/loose-coupling.md @@ -0,0 +1,4 @@ +# Loose Coupling +In addition to the [robustness principle](core-principles/robustness.md), API consumers (clients) MUST **operate independently** on API implementation's internals. Similarly the API consumers MUST NOT **assume** or **rely on** any knowledge of the API service internal implementation. + +Where available, the clients SHOULD utilize **hypermedia controls as the engine of the application state**, and rely on the **protocol, message and vocabulary semantics**. diff --git a/core-principles/robustness.md b/core-principles/robustness.md index 14c5bcd..a1f1e30 100644 --- a/core-principles/robustness.md +++ b/core-principles/robustness.md @@ -2,6 +2,7 @@ Every API implementation and API consumer MUST follow Postel's law: > "Be conservative in what you send, be liberal in what you accept." +> > – [John Postel](https://en.wikipedia.org/wiki/Robustness_principle) That is, send as little as possible and be tolerant as possible while consuming another service ([tolerant reader](https://martinfowler.com/bliki/TolerantReader.html)). diff --git a/core-principles/rules-for-extending.md b/core-principles/rules-for-extending.md new file mode 100644 index 0000000..08e6c1a --- /dev/null +++ b/core-principles/rules-for-extending.md @@ -0,0 +1 @@ +# Rules for Extending \ No newline at end of file diff --git a/core-principles/versioning.md b/core-principles/versioning.md new file mode 100644 index 0000000..1ca61ba --- /dev/null +++ b/core-principles/versioning.md @@ -0,0 +1 @@ +# Versioning