Currently the api has several different endpoints for various things: Endpoints | Use -- | -- `/login` | Receives a JSON encoded username and password. Sets a Refresh token cookie and returns an access token. `/tokens/refresh` | Gets a new refresh token. `/api/<string:queue>/<int:number>` | Returns a JSON encoded Item. `/api/<string:queues>` | Returns a JSON encoded Queue. `/api/get_queues` | Returns a list of queues and their item counts. In order to simplify the work needed for a reverse proxy in production [as described in this comment](https://github.itap.purdue.edu/ECN/webqueue2/issues/162#issuecomment-517), these endpoints should all be consolidated under one path: `/api` with a hierarchical organization following. For example: - `/api` - The root of the API path. - `/login` - The login path. (`/api/login`). - `/tokens` - The root for token related resources. (`/api/tokens`). - `/refresh` - Refresh an access token using a refresh token. (`/api/tokens/refresh`). - `/data`- The root for resources that return queue data. (`/api/data`). - `/<string:queues>` - Get a JSON encoded Queue or list of Queues. Example: `/api/data/ce` or `/api/data/ce+comm`. - `/<string:queue>/<int:number>` - Get a JSON encoded Item. Example: `/api/items/ce/100`.