Odi's astoundingly incomplete notes
Next time you implement a webservice framework, please:
- make it difficult to produce invalid SOAP messages. Your generated SOAP messages should conform to the schema and mapping in the WSDL.
- make sure you escape XML correctly. Use an XML infrastructure, not string operations.
- support all features of XML schema, not just a subset
- make sure you handle namespaces correctly
- make sure you handle nil, empty elements and optional elements correctly and in a simple way for the user
- certain attributes in schema definitions have standardized defaults. Make sure you use them in the absence of these attributes.
- make sure you handle timezones in dates/times correctly
- generate code from WSDL. Never generate WSDL.
- issue useful error messages from your utilities instead of just crashing
- make the generated code look nice.
- use the documentation from the WSDL as API doc.
- make the generated code useful for a programmer
- don't try to hide something behind a mapping infrastructure. Someone will have to go down and do the dirty work one way or another. A mapping file is not better than code.
- give the programmer also access to the raw SOAP message. Preferably both as string and parse tree
- make message logging simple and let the programmer choose to log it in any other way
- east shit, poo gold
- if you fail to do that, don't call your product WS-capable. You can just as well use a proprietary binary protocol because your broken WS implementation will never be able interact with the real world.