Informāciju projekta startēšanai
- Iestatiet
API_URL
unPORT
savā.env
failā npm install
- Instalējiet pakotnesnpm start
- startējiet lietotninpm test
- startējiet testus
Lai startētu frontend lietotni, atlasiet frontend/src
direktoriju un lietojiet npm start
komandu.
Tas būs pieejams vietnē localhost:3000
PAPILDUZDEVUMS Logging - izpildīts
PAPILDUZDEVUMS Datu ievades un izvades formāti - nav izpildīts
PAPILDUZDEVUMS Automatizēto testu pievienošana - izpildīts daļēji
PAPILDUZDEVUMS ESLint statisko koda analīzes rīka pievinošana - nav izpildīts
PAPILDUZDEVUMS WEB formas vizualizācija - izpildīts
Šis mikroserviss tiks izstrādāts, lai integrētu trešās puses API un veiktu datu transformāciju, nodrošinot rezultātu sagatavošanu atbilstoši ieejas parametriem. Serviss ir jāizstrādā, izmantojot ExpressJs framework un Node.js serveri.
{
"query": "string",
"page": 1
}
Parametrs | Tips | Min garums | Min vērtība | Obligāts |
---|---|---|---|---|
query |
string | 1 | - | Jā |
page |
number | 1 | 1 | Jā |
[
{
"title": "string",
"description": "string",
"final_price": "number"
}
]
Parametrs | Tips | Apraksts |
---|---|---|
title |
string | Produkta nosaukums |
description |
string | Produkta apraksts |
final_price |
number | Produkta gala cena |
API URL: https://dummyjson.com/products/search?q=phone&limit=1&skip=0
- Nodrošināt, ka katrā lapā ir ne vairāk kā divi produkta ieraksti;
Veicot datu transformāciju, ir jāievēro šādi nosacījumi:
-
Pievienot lauku
final_price
, kas tiek veidots, izmantojot vērtību no online API atbildes laukaprice
, no kura tiek noņemtidiscountPercentage
procenti. -
Lauka
final_price
vērtībai ir jābūt vienmēr ar diviem cipariem aiz komata.
Veicot ienākošo parametru validāciju, ir nepieciešams pārbaudīt to atbilstību noteikumiem. Gadījumā, ja tiek saņemti neatbilstoši vai nepareizi dati, atgriezt kļūdu ar attiecīgu HTTP statusu (piemēram, 400 - "Bad Request").
Ja mikroserviss sastop kļūdu, tas nodrošina atbilstošu kļūdas ziņojumu, kura HTTP status atbilst kļudas būtibai, kā arī atbildes saturā atgriest divus informatīvus parametrus.
{
"code": "number",
"message": "string"
}
Parametrs | Tips | Apraksts |
---|---|---|
code |
string | HTTP kļūdas kods |
message |
number | Kļūdas ziņojums bez detalizēta satura (stack) |
Ieviest logging mehānismu, izmantojot express.js middleware, kas reģistrē ienākošos un izejošos pieprasījumus konsolē, ieskaitot kļūdu gadījumus.
Logging mehānismam ir jādarbojas asinhroni, un tas nedrīkst ietekmēt servisa stabilitāti vai ātrdarbību (pieņemot, ka nākotnē log ieraksti tiku sūtīti uz API nevis izvadīti ar console.log()
).
Ienākošais ziņojuma log saturs:
{
"type": "messageIn",
"body": "string",
"method": "string",
"path": "url",
"dateTime": "dateTime"
}
Izejošā ziņojuma log saturs:
{
"type": "messageOut",
"body": "string",
"dateTime": "dateTime",
"fault": "string"
}
Kļūdas gadījumā laukam fault
ir jāsatur detalizēta kļūdas informācija (stack) tekstuālā formātā.
Papildināt servisu, lai spētu apstrādāt ienākošos datus vairākos formātos, vadoties pēc HTTP header Content-Type
parametra.
Derīgās parametru vērtības |
---|
application/xml |
application/json |
multipart/form-data |
Papildināt servisu, lai tas spētu izvadīt datus vairākos formātos, vadoties pēc HTTP header Accept
parametra (ieskaitot kļūdu ziņojumus). Pēc noklusējuma serviss atgriež datus JSON formātā.
Derīgās parametru vērtības |
---|
application/xml |
application/json |
Papildināt servisu ar JEST automatizētiem testiem
- Pārbaudīt, vai serviss izpildās korekti.
- Pārvaidīt, vai serviss korekti atbild visos kļūdas gadījumos.
- Pārbaudīt, vai serviss atbild korektā datu formātā.
Testus jāspēj izpildīt ar konsoles komandu "npm run test"
.
Pievienot projektam ESLint statisko k
oda analīzes rīku un noformatēt kodu, lai tas atbilstu airbnb-base
formatējumam.
Koda formatējumu jāspēj pārbaudīt ar konsoles komandu "npm run lint"
.
Izstrādāt neatkarīgu WEB aplikāciju meklēšanas formas vizualizācijai izmantojot kādu no reaktīviem JS framework - vue / react / angular.
Aplikācijai ir jāspēj veikt kļūdas apstrādes vizualizāciju.
Papilduzdevumus var pilnīgi vai dalēji pildīt ne rindas kārtībā.
Projekti ir jānodod izmantojot publisku git repozitorijas GitHub vai GitLab lietotnē. Papildino readme.md
failu ar informāciju par:
- minimālu informāciju projekta startēšanai;
- jānorāda, kuri papilduzdevumi ir pilnīgi vai ir daļēji izpildīti;
Veicot commit, lūdzu, ievērot Conventional Commits stilu.
Veiksmi uzdevuma izstrādē!