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.