Differences

This shows you the differences between two versions of the page.

Link to this comparison view

moby:backend:03 [2020/07/23 15:29]
alexandru.hogea [Resurse]
moby:backend:03 [2020/07/27 15:14] (current)
alexandru.hogea [Resurse]
Line 8: Line 8:
 ==== Resurse ==== ==== Resurse ====
  
-Puteti pleca de la urmatorul ​[[https://gitlab.com/mobyworkshop/library-microservice.git|schelet de cod]]. Sunt implementate urmatoarele:​+Filmuletul cu prezentarea poate fi gasit la acest [[https://drive.google.com/drive/folders/​1BJcQlCYE2WN5vA0J1ZQjV4tp0Avd1x21?​usp=sharing|link]]
  
 Un REST API poate fi structurat, cel mai des, in doua moduri: Un REST API poate fi structurat, cel mai des, in doua moduri:
Line 16: Line 16:
  
 Noi am ales o impartire bazata pe context. Fiecare context din cadrul serviciului are propriul lui folder (de exemplu, folderul **authors**). O impartire pe functionalitate implica foldere dedicate functionaltiatilor (de exemplu, folder **controllers**,​ folder **services**,​ etc...). Noi am ales o impartire bazata pe context. Fiecare context din cadrul serviciului are propriul lui folder (de exemplu, folderul **authors**). O impartire pe functionalitate implica foldere dedicate functionaltiatilor (de exemplu, folder **controllers**,​ folder **services**,​ etc...).
 +
 +Puteti pleca de la urmatorul [[https://​gitlab.com/​mobyworkshop/​library-microservice.git|schelet de cod]]. Sunt implementate urmatoarele:​
 +
 === Scriptul de start (start.js) === === Scriptul de start (start.js) ===
  
Line 303: Line 306:
 NODE_ENV=development NODE_ENV=development
 </​code>​ </​code>​
 +
 +=== Package.json ===
 +Pe langa informatiile uzuale trecute in package.json,​ ce tin de pachetele folosite, am introdus 3 scripturi, la sectiunea scripts. Rolul lor este sa ne ajute sa diferentiam modurile de rulare ale serverului.
 +
 +<code json>
 +{
 +  "​name":​ "​practic",​
 +  "​version":​ "​1.0.0",​
 +  "​description":​ "",​
 +  "​main":​ "​start.js",​
 +  "​scripts":​ {
 +    "​start-dev-docker":​ "​nodemon start.js",​ // comanda de rulare in interiorul dockerului, rol de development
 +    "​start-dev":​ "​nodemon -r dotenv/​config start.js",​ // comanda de rulare local, folosind fisierul de variabile de mediu .env si pachetul dotenv pentru injectarea lor
 +    "​start":​ "node start.js"​ // comanda de rulare in interiorul dockerului, in productie
 +  },
 +  "​author":​ "",​
 +  "​license":​ "​ISC",​
 +  "​dependencies":​ {
 +    "​docker-secret":​ "​^1.1.2",​
 +    "​dotenv":​ "​^8.2.0",​
 +    "​express":​ "​^4.17.1",​
 +    "​express-async-errors":​ "​^3.1.1",​
 +    "​helmet":​ "​^3.23.3",​
 +    "​http-errors":​ "​^1.8.0",​
 +    "​log-timestamp":​ "​^0.3.0",​
 +    "​morgan":​ "​^1.10.0",​
 +    "​nodemon":​ "​^2.0.4",​
 +    "​pg":​ "​^8.3.0"​
 +  }
 +}
 +
 +</​code>​
 +
 +==== Baza de date ====
 +
 +Pentru a nu va pune sa instalati PostgreSQL pe sistemul vostru, si pentru ca traim in 2020, am ales sa folosim **docker** si **docker-compose** pentru rularea postgres local. Chiar daca inca nu stiti ce inseamna, nu este nicio problema, peste 3 workshop-uri veti cunoaste toate aceste lucruri.
 +
 +Pentru rularea bazei de date, trebuie sa dati comanda de mai jos in folderul **database-deploy**
 +
 +<code bash>
 +docker-compose up
 +</​code> ​
 +
 +Structura bazei de date pentru partea de biblioteca o puteti regasi [[https://​dbdiagram.io/​d/​5da063faff5115114db5261e|aici]],​ urmarind tabelele care sunt prefixate cu **Library**.
 +==== Exercitii ====
 +
 +  - Recapitulare javascript
 +  - Recapitulare NodeJS
 +  - Realizati controllerele si serviciile pentru interactiunea cu Books
 +
 +<note important>​Pentru Books, va trebui sa dati si id-ul utilizatorului care a introdus cartea. Pentru ca, momentan, nu avem serviciul de autentificare si autorizare scris, ignorati acest lucru si puneti orice valoare de tip int. Vom modifica acest lucru in momentul in care realizam serviciul de auth si, deci, vom avea utilizatori</​note>​
moby/backend/03.1595507388.txt.gz · Last modified: 2020/07/23 15:29 by alexandru.hogea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0