All endpoints and other things that need to be done regarding the HTTP server.
[ ] Endpoints (and required role(s) to use them)
[ ] Get joke (anyone) (#495)
[ ] Edit / delete joke (admin) (#516)
[ ] Create / update / delete submission (user / submission author / moderator and author) (#511)
When a submission is created, the API should check for already existing similar jokes and possibly for keyboard vomit and deny the submission
[ ] Create reports for jokes, submissions and (TBD) submission edit proposals (#517)
[ ] User accounts (#515)
[ ] Billing (#519)
[x] Rate limiting
[x] General, more forgiving rate limiting for all endpoints with larger budget and shorter time frame for premium users
If the time frame for free users is something in the 1-24 hour range that would incentivize the paid tier(s)
[ ] Specialized rate limiting for endpoints that require it
[ ] Security
[ ] Set good content security policy for documentation (and API itself?) (#TODO)
[x] Use helmet middleware for setting security headers
[x] Use cors middleware to allow websites to use JokeAPI
[x] Use compression middleware to compress responses
All endpoints and other things that need to be done regarding the HTTP server.
When a submission is created, the API should check for already existing similar jokes and possibly for keyboard vomit and deny the submission
If the time frame for free users is something in the 1-24 hour range that would incentivize the paid tier(s)
helmet
middleware for setting security headerscors
middleware to allow websites to use JokeAPIcompression
middleware to compress responses