API Requirements - bounswe/bounswe2017group3 GitHub Wiki
API Requirements
This page contains the requirements of our test application, which is an event listing application that enables its users to create and find events.
1. Functional Requirements
1.1 User Requirements
1.1.1 Profile
- 1.1.1.1 Users should have a profile that includes their personal information.
- 1.1.1.2 Users shall be able to edit their profiles.
1.1.2 Contribution
- 1.1.2.1 Users shall be able to create events with a
POST
request to/event/
endpoint that contains the event information in the request body. - 1.1.2.2 Users shall be able to retrieve all events with a
GET
request to/event/
endpoint. - 1.1.2.3 Users shall be able to retrieve a specific event with a
GET
request to/event/:eventID
endpoint. - 1.1.2.4 Users shall be able to delete their events with a
DELETE
request to/event/:eventID
endpoint. - 1.1.2.5 Users shall be able to update their events with a
PUT
request to/event/:eventID
endpoint that contains the new event information in the request body. - 1.1.2.6 Users shall be able to retrieve all users with a
GET
request to/user/
endpoint. - 1.1.2.7 Users shall be able to retrieve users by id with a
GET
request to/user/:userID
endpoint. - 1.1.2.8 Users shall be able to retrieve users by username users with a
GET
request to/user/:userUsername
endpoint. - 1.1.2.9 Users shall be able to retrieve users by fullname with a
GET
request to/user/:userFullname
endpoint.
1.2 System Requirements
- 1.2.1 The system shall always give outputs in JSON format.
- 1.2.2 The system shall respond to
GET
,POST
,PUT
,DELETE
requests only. - 1.2.3 The system should be consistent with
HTTP/1.1
standards in terms of HTTP response codes. - 1.2.4 The system should give a token in the response of a log-in request and expect that token to authenticate the user on later requests.
2. Nonfunctional Requirements
2.1 Performance
- 2.1.1 The system should be able to handle 1000 active connections at a time.
2.2 Database
- 2.2.1 The system should use a SQL database to store the user and event data.