I would like my API to have a validation-only request. For example, if I have a URL such as:
http://api.somesite.com/users/12345
and the user is filling out a form of information on a client that I will eventually PATCH/PUT/POST to that resource. As the user is filling out the form, I might want to send over their partially-complete updated representation over to the server periodically so I can display realtime validation of their input (e.g., “That username is already taken”, “That password is too short”).
There isn’t a standard HTTP METHOD or HEADER that seems to allow for this behavior on that same resource. It seems my options are:
- Create a new subordinate resource for validation
- Use a custom header (x-somesite-validation-only) and PUT indicating that I want to validate but not save
Some options
1) Use custom header
2) Put something in the query string indicating to validate only
3) Use Action URl e.g. \IndividualClient\123\actions\Validate\Invoke {section 19 here http://restfulobjects.files.wordpress.com/2011/11/restful-objects-spec-052.pdf}
4) Hierarchical URL e.g. \IndividualClient\123\Validation
From this post I find this advice
Here is what I’m considering:
This is the add of a resource :
user/validation
POST
Request:UserResource
Response:ValidationResult
Response Codes 200, 400. 404. 500
This is the update of a resource
user/204/validation
POST
Request:UserResource,
Response:ValidationResult
Response Codes 200, 400. 404. 500