Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

API description template

Please see the template tables (for each verb) that you can use to create the API
specification that fits the given API (posted on Blackboard). To see an example for each Verb,
see the result for the Server-side homework week 1.

Instead of this document and templates, you can use other tools to create the API
specification as well. An example of such a tool is the Swagger Editor
(https://editor.swagger.io/).
Table of Contents
1. Class diagram.............................................................................................................3
2. GET requests..............................................................................................................4
3. POST requests............................................................................................................5
4. PUT requests..............................................................................................................6
5. DELETE requests.........................................................................................................7

Inleiding:

Ik he been website gemaakt waarbij een gebruiker een mechanisch toetsenbord samen kan
stellen. Wanneer dit is samengesteld, kan er gezien worden hoeveel het toetsenbord gaat
kosten. Het is mogelijk om een nieuw toetsenbord toe te voegen door te een keuze te
maken van een aantal onderdelen. Deze kan aangepast en verwijderd worden. Er kan
gekozen worden tussen meerdere gebruikers.

2
1. Class diagram
Put your class diagram here. Also write some text that describes what is going on in your
class diagram. For example, point out what the different unique identifiers are for each class
and how the classes are related to each other.

Hieronder is het klassendiagram te zien. Het diagram bevat een user. Een user kan
keyboards toevoegen aan de lijst. Er is daarom een 1 op veel relaties tussen de user en de
keyboard klasse. Een keyboard bestaat uit meerdere onderdelen. Deze onderdelen zijn weer
onderverdeeld in verschillende klassen. De plate, keyboardCase, switches, PCB en keycaps.
Deze klassen hebben allemaal een 1 op veel relatie met de keyboard class.

3
2. GET requests
Add your requests here. Copy-paste the template for each different request.

Template GET table:


GET /url/{pathParam}?queryParam=value
[description here. Explain what the request does when executed successfully.]

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

GET /keyboards/{id}
Gets an keyboardCase based on the id.

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

4
GET /keyboards/getlist/{id}
Gets all the keyboards with the given user_id

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

GET /keyboards/getExistingKeyboard/{id}
Gets an keyboard based on the keyboard_id

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

GET /keyboards/keycaps
Gets a list of all the keycaps

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

5
GET /keyboards/PCB
Gets a list of all the PCB’s

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

GET /keyboards/plate
Gets a list of all the plates
Parameters: Name Type Description
Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

6
GET /keyboards/switches
Gets a list of all the switches

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

GET /keyboards/users
Gets a list of all the users

Parameters: Name Type Description


Add a * to the (path / query)
name of (path / query)
required (path / query)
parameters.
(path / query)
(path / query)
Responses: Code Description / example if successful

7
3. POST requests
Add your requests here. Copy-paste the template for each different request.

Template POST table:


POST /keboards
Saves an keyboard and puts it in the database

Parameters: Name Type Description


Add a * to the (path / body)
name of (path / body)
required (path / body)
parameters.
(path / body)
(path / body)
Responses: Code Description / example if successful

8
4. PUT requests
Add your requests here. Copy-paste the template for each different request.

Template PUT table:


PUT /keyboards/{id}
Saves an edit of an existing keyboard to the database

Parameters: Name Type Description


Add a * to the (path / body)
name of (path / body)
required (path / body)
parameters.
(path / body)
(path / body)
Responses: Code Description / example if successful

5. DELETE requests
Add your requests here. Copy-paste the template for each different request.

Template PUT table:


DELETE /keyboards/deleteKeyboard/{id}
Deletes an keyboard from the database

Parameters: Name Type Description


Add a * to the path
name of path
required path
parameters.
path
path
Responses: Code Description / example if successful

9
Sequence diagrams

Hier zijn de sequence diagrammen te zien. Het eerste diagram laat zien hoe er een post
wordt gemaakt naar de database. Op de website kunnen er een aantal onderdelen gekozen
worden. Deze worden via een form naar de Fetch API gestuurd. De API gaat deze data met
JSON naar de database versturen. Hier wordt het opgeslagen. Vervolgens wordt het
opgeslagen toetsenbord weer teruggestuurd en getoond op de webpagina.

Het tweede diagram laat een get request zien. De gebruiker kiest een van de users uit de
drop down menu. Er wordt vervolgens door de Fetch API een get request gemaakt met het

10
id dat aan deze user vast zit. Daarna worden de toetsenborden dat gekoppeld is aan de user
id terug gestuurd en getoond op de webpagina in de lijst.

11
Justification and other choices
Ik heb geen javaScript frameworks gemaakt of andere plugins waar ik toestemming voor
moest vragen.

Ik heb alleen wel een paar dingen gedaan die niet helemaal kloppen. Ik heb de dummy data
dat ingeladen moet worden op een andere manier toegevoegd. Ik heb in elke service een
methode aangemaakt waarmee ik data kan toevoegen aan de database.
Ik heb vervolgens een class genaamd AllProducts aangemaakt met methodes waarmee ik de
data inlaad. Deze mehodes stop ik vervolgens in de methode addProducts. Deze roep ik
weer aan in de main van de application class. Ik kwam er iets te laat achter dat er ook een
andere manier was via spring. Ik had geen tijd om dat aan te passen. Ook heb ik door tijd
tekort geen een op veel relaties gemaakt in de keyboard class waardoor child objects niet
verwijderd worden in de database.

12

You might also like