Detta är en REST-API byggd utifrån tre tabeller som skapats genom code-first, och är grunden till ett tidrapporteringssystem. Det kan användas för att t ex ta reda på hur många timmar en specifik anställd har jobbat en specifik vecka, eller hämta en lista med alla anställda.
Strukturen bygger på tre interfaces, varav ett huvudsakligt med grundläggande CRUD-metoder, sedan två med extra metoder för att uppfylla kraven på funktionalitet från kravspec. Dessa två ärver från det huvudsakliga interfacet. De repositories som behöver extra metoder utöver de från huvudinterface ärver från två inteface.
För att optimera applikationen för backend har följande gjorts:- Styra inmatning i tabeller med annotationer, och på så sätt minska belastning på databas
- Paginering för att inte hämta all data på en gång, och med valbara mängder, dock ett max per sida
- Alla metoder är asynkrona
- Alla controllers är felhanterade avseende kontakt med databas - Vi vill kunna få ut en lista med alla anställda i systemet
GET mot /api/employees/[id]
- Vi vill kunna få ut en lista på alla anställda som jobbar med ett specifikt projekt
GET mot /api/Projects/listemp/[project]
- Vi vill kunna få ut hur många timmar en specifik anställd jobbat en specifik vecka (ex antal timmar vecka 25)
GET mot /api/TimeReports/[employeeid]/[week]
- Vi vill kunna lägga till, uppdatera och ta bort anställda.
POST mot
PUT mot
DELETE mot
- Vi vill kunna lägga till, uppdatera och ta bort projekt
POST mot
PUT mot
DELETE mot
- Vi vill kunna lägga till, uppdatera och ta bort specifika tidsrapporter
POST mot
PUT mot
DELETE mot
- Hämta tidsrapporter per sida
GET mot /api/TimeReports?PageNumber=3&PageSize=20
Utöver detta finns sökning för att hitta anställda via namn.