- [ ] Integrate with other data stores - [ ] SQLite - [ ] PostgreSQL - [ ] DuckDB - [X] Access control with resources - [ ] Custom definitions - [ ] Middlewares - [ ] Request decorators - [ ] Status messages - [ ] Response bodies (in case of error messages) - [ ] Resource operations - [ ] Single item - [ ] Collection - [ ] Content negotiation - [X] Language - [X] Charset - [X] Media Type - [X] Improve content negotiation on success/error responses (able to explicitly select language/media type/charset) - [X] HTTPS - [X] Date/Datetime handling (endpoints should be able to accept timestamps and ISO date/datetime strings) - [ ] Querying items in collections - [ ] 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`) - [ ] Declare relationship (e.g. `/users/3/posts`) - [ ] Tests - [X] Happy path - [ ] Error handling - [X] Resource handlers - [ ] Generic errors - [ ] Implement error handling compliant to RFC 9457 - Problem Details for HTTP APIs - [ ] Create RESTful client for frontend, server for backend (specify data sources on the server side) - [ ] `EventEmitter` for `202 Accepted` requests (CQRS-style service) - [ ] Implement RPC endpoints - [ ] Implement `Vary` header (requires providing a `getHeader()` method in the request object to listen for obtained headers) - [ ] Add example on serving data as documents using `application/html` type. - [ ] OpenAPI support - [ ] Swagger docs plugin - [ ] Plugin support - [ ] Add option to reject content negotiation params with `406 Not Acceptable` - [ ] Add `fast-check` for property-based checking - [X] Split HTTP server from backend core - [ ] Add HTTP entrypoint (package?)