HATEOAS-first backend framework.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TODO.md 1.8 KiB

123456789101112131415161718192021222324252627282930313233343536373839
  1. - [ ] Integrate with other data stores
  2. - [ ] SQLite
  3. - [ ] PostgreSQL
  4. - [ ] DuckDB
  5. - [X] Access control with resources
  6. - [ ] Custom definitions
  7. - [ ] Middlewares
  8. - [ ] Request decorators
  9. - [ ] Status messages
  10. - [ ] Response bodies (in case of error messages)
  11. - [ ] Resource operations
  12. - [ ] Single item
  13. - [ ] Collection
  14. - [ ] Content negotiation
  15. - [X] Language
  16. - [X] Charset
  17. - [X] Media Type
  18. - [X] Improve content negotiation on success/error responses (able to explicitly select language/media type/charset)
  19. - [X] HTTPS
  20. - [X] Date/Datetime handling (endpoints should be able to accept timestamps and ISO date/datetime strings)
  21. - [ ] Querying items in collections
  22. - [ ] Better URL parsing for determining target resource/resource IDs (e.g. `/api/users/3/posts/5`, `/users/3` is a query, `posts` is the target resource, `5` is the target resource ID. Different case with `/api/users/3/posts/5/attachments`)
  23. - [ ] Declare relationship (e.g. `/users/3/posts`)
  24. - [ ] Tests
  25. - [X] Happy path
  26. - [ ] Error handling
  27. - [X] Resource handlers
  28. - [ ] Generic errors
  29. - [ ] Implement error handling compliant to RFC 9457 - Problem Details for HTTP APIs
  30. - [ ] Create RESTful client for frontend, server for backend (specify data sources on the server side)
  31. - [ ] `EventEmitter` for `202 Accepted` requests (CQRS-style service)
  32. - [ ] Implement RPC endpoints
  33. - [ ] Implement `Vary` header (requires providing a `getHeader()` method in the request object to listen for obtained headers)
  34. - [ ] Add example on serving data as documents using `application/html` type.
  35. - [ ] OpenAPI support
  36. - [ ] Swagger docs plugin
  37. - [ ] Plugin support
  38. - [ ] Add option to reject content negotiation params with `406 Not Acceptable`
  39. - [ ] Add `fast-check` for property-based checking