From a0fed2034f80eb9a3a315cc479471e3689337b55 Mon Sep 17 00:00:00 2001
From: Manuel Kieweg <manuel.kieweg@h-da.de>
Date: Mon, 24 Aug 2020 16:01:48 +0200
Subject: [PATCH] Added YANG to code section

---
 documentation/design/05-implementation.md | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/documentation/design/05-implementation.md b/documentation/design/05-implementation.md
index 13ab7f748..06c5110d4 100644
--- a/documentation/design/05-implementation.md
+++ b/documentation/design/05-implementation.md
@@ -3,3 +3,24 @@
 
 ## Why we do this in go
 
+## YANG to code
+
+The base of the development of goSDN are YANG modules. The RESTful API used for RESTCONF is defined in an OpenAPI 2.0 file. This API documentation is generated from the YANG module. The YANG module description is also used to generate code stubs for the goSDN RESTCONF client.
+
+### YANG
+
+YANG defines an abstract netwoprk interface. It is the foundation of the RESTCONF protocol. Several code generators exist to generate code stubs from a given definition.
+
+### OpenAPI
+
+OpenAPI - formerly known as Swagger - is a framework that defines RESTful APIs. We use OenAPI documentations to define the RESTCONF server implementation of the cocsn YANG modules.
+
+### Toolchain
+
+We use 3 different tools for the code generation workflow. For the RESTCONF server `yanger` is used to generate the OpenAPI documentation from the YANG file. `go-swagger` is used to generate a RESTCONF server with stubs for the REST calls.
+
+The RESTCONF  client stubs used by goSDN are generated from YANG files using YGOT.
+
+### Dependencies
+
+For now we can only use the OpenAPI 2.0 standard. This is because `go-swagger` does not support OpenAPI 3.0 specifications yet.
\ No newline at end of file
-- 
GitLab