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
POSTrequest 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
GETrequest to/event/endpoint. - 1.1.2.3 Users shall be able to retrieve a specific event with a
GETrequest to/event/:eventIDendpoint. - 1.1.2.4 Users shall be able to delete their events with a
DELETErequest to/event/:eventIDendpoint. - 1.1.2.5 Users shall be able to update their events with a
PUTrequest to/event/:eventIDendpoint that contains the new event information in the request body. - 1.1.2.6 Users shall be able to retrieve all users with a
GETrequest to/user/endpoint. - 1.1.2.7 Users shall be able to retrieve users by id with a
GETrequest to/user/:userIDendpoint. - 1.1.2.8 Users shall be able to retrieve users by username users with a
GETrequest to/user/:userUsernameendpoint. - 1.1.2.9 Users shall be able to retrieve users by fullname with a
GETrequest to/user/:userFullnameendpoint.
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,DELETErequests only. - 1.2.3 The system should be consistent with
HTTP/1.1standards 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.