summaryrefslogtreecommitdiff
path: root/html/processed-views/server-client-contract.md
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 07:16:23 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 07:16:23 +0200
commit7076343338ae3439f3c86f01144818abe8c31978 (patch)
tree794abb1e6b8f821091fd095341885496b6dad51d /html/processed-views/server-client-contract.md
parent47cbb529f5723b246125ae083a193e11481b89ef (diff)
downloadclassroom-7076343338ae3439f3c86f01144818abe8c31978.tar.gz
classroom-7076343338ae3439f3c86f01144818abe8c31978.tar.bz2
classroom-7076343338ae3439f3c86f01144818abe8c31978.zip
add container helpers; constuct public directory-tree
Diffstat (limited to 'html/processed-views/server-client-contract.md')
-rw-r--r--html/processed-views/server-client-contract.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/html/processed-views/server-client-contract.md b/html/processed-views/server-client-contract.md
new file mode 100644
index 0000000..325e6e5
--- /dev/null
+++ b/html/processed-views/server-client-contract.md
@@ -0,0 +1,59 @@
+## Server-Client contract
+
+Servers can serve content in 2 major formats: text/html and json (and links to many more content types)
+
+Clients/browsers can handle content in many more ways; they can just passive render the content or they
+can grow their proccessing and logic to become a smart engine or heavy application.
+
+These 2 factors need to cooperate smoothly. So, it is necessary to pre-define:
+- what a server serves
+- what a borwser/client procceses
+
+This contract:
+- allows development sharing in separate teams
+- sets clear rules for each development group
+- helps developing an ecosystem of reliable tools that can be reused and extended
+- helps to detect malfunctions and apply fixes and optimizations
+- makes the project manageable and scalable
+
+
+---
+
+
+## The Contract
+
+A cotract is recommended to include as less as possible rules;
+
+Of course there might be page-types that need special handling; Such pages are
+
+- product pages
+
+- product categories pages
+
+
+
+### Rule #1: Default rule
+
+
+On the server side:
+
+- Server serves main content in html format; all non-user-based content is constucted and served in html format
+
+On the client side:
+
+- Client/browser requests the user-based content via ajax; (*still to be determinid the format of the replies*)
+
+
+
+### Product Pages
+
+
+apache:
+serves product -> product: { id, title, prices:{ s1:{..}, s2:{..}, ... }, images:{...} }
+
+browser:
+check cookie(store) = s#
+-> use product.prices.s# to draw prices
+
+
+---