When designing a web service that will allow the consumer of the service to save and get a complex data type (say Foo), should the service expose Create(Foo) and Update(Foo) service calls, or should the service expose merely a Save(Foo) service call? If Save(Foo) is better, should the user be able to predict whether the system will create or update (based on the content of Foo), or should the system simply create or update based on whether the Foo exists or not?
Assume that we want a simple interface and do not want to confuse the consumer with multiple ways to do things, but we also want to ensure unexpected results do not occur.
I can see pros and cons to each, but before I bias your answer, what do you think?
Finally, are there any articles out there on this subject?
(search engine help: Create vs. Save, Update vs. Save, Create/Update vs. Save)