API-Platform Documentation
Introduction, concepts, features, other resources
1. On top of an existing Symfony project
2. As a new project with Symfony Flex
3. The Distribution: Create powerful APIs with ease
4. A full-working example
Bring your own model, Validating, Admin, React PWA, Debugging
1. General design considerations
Schema.org introduction, (improve SEO, automatic validation, ...), Model scaffolding.
Operations introduction, enabling/disabling, configuration.
Path, access control, depth
6. Serialization & Unserialization
Process introduction, Context/Groups/Relations, Groups per operation, Embedding relations
8. Semantics & Validation with schema.org
9. Configuration reference
Pagination, Filters & Sorting
1. Pagination
Enabling/disabling, itemsPerPage, maximumItemsPerPage, ...
Search, Date, Boolean, ...
Order filter, set default order
2. FOSUserBundle integration
Access control expressions, configure access control messages
2. Deprecating resources or properties
3. The Sunset HTTP header
4. Customize error messsages
5. HTTP2/Push related resources
1. OpenAPI/Swagger export
React, NextJS, Vue, etc
Fetching and persisting data
1. Built-in Doctrine support
Documenting / Specifying your API
1. Swagger / OpenAPI support
3. Extending JSON-LD and Hydra Contexts
7. NelmioApiDocBundle Integration
5. Pagination, Filters & Sorting
Groups, dynamic groups,different types
Custom types, modify the extracted types
Name conversion, nesting operator
Real-time and streaming capabilities
1. Enabling Mercure support
2. Pushing the API updates
3. Dispatching Private Updates (Authorized Mode)
3. Authentication support
4. Handling relations to collections
1. Creating data fixtures
2. Writing functional tests
ApiTestCase, Behat, ...
Link to SF docs, refer to Nginx "too big header issue"
Caching & Performance optimization
1. Built-in Cache invalidation
2. Custom Cache HTTP Headers
4. Doctrine queries & indexes
6. Profiling with Blackfire.io
1. Custom operations / controllers
4. Extending built-in Doctrine implementation
Ex. block anonymous users
5. Data providers / Data persisters
6. CQRS & Async message processing (Symfony Messenger)
1. Enable MongoDB support
+ create custom ODM extension
2. Enable ElasticSearch support
+ create custom ElasticSearch extension
3. Change the serialization context on a request basis
4. Change the serialization context on a per-item basis
5. Select the properties to serialize
7. Push real-time updates with Mercure
8. Prefix routes for all operations
9. Enable several formats
10. Use a custom path resolver
11. Accept application/x-www-form-urlencoded form data
12. Extend the JSON-LD context
13. Embed the JSON-LD context
14. Use snake_case instead of camelCase
15. Add extra data during serialization
16. Enable NelmioApiDocBundle integration
2. API-Platform & JMS serializer
3. Nginx "too big header" issue
Symfony Slack / Stackoverflow
Contribution guides, contribution code of conduct