I'm currently working on a REST API, trying to design it with most best practices as possible.
I work with Symfony2 PHP framework but some of my questions are valid for any REST API i guess.
Starting from the base design for a particular resource :
GET        /resource            - Get all resources
POST       /resource            - Create resource
GET        /resource/{id}       - Get resource with id={id}
PUT|PATCH  /resource/{id}       - Edit the resource with id={id}
DELETE     /resource/{id}       - Delete the resource with id={id}
Supposing my resource has complex rules while updating.
- It has a "status" field, (a float for example), that can be updated only by following a particular scheme
- It has a "schedule" field (a datetime), with different choices available that are not always the same
How am I supposed to expose those rules to the API consumer ? For the schedule field, how am I supposed to provide the different choices available at the current time ?
About the Symfony server-side part, I followed most of the recommandations of this walkthrough : http://williamdurand.fr/2012/08/02/rest-apis-with-symfony2-the-right-way/
My POST, PUT & PATCH actions are handled with Symfony Forms, so most of the rules are processed by Symfony constraints/validations features.
But form binding is quite limited, let's supposed I want to trigger a particular event if the user change the status field from 2 to 3? What is the best way to do that ?
Thanks in advance.
 
     
     
     
    