- Understand the object model. All grouper-ws services are operations based on simple data structures. The structures support Strings, ints, arrays, and structure references.
- Core web service API
- Example structure (only "getters" and "setters" are applicable properties)
- Each operation has many samples (authmated captures, versioned, and up to date). Here is an example
- Most options has a sensible default (e.g. MemberFilter defaults to All members)
- Lookup objects in various (consistent) ways. e.g. to delete a group, you can pass the name or uuid of the group.
- Decide if you are using SOAP or REST (this is real REST, not Axis HTTP/XML)
- Both SOAP and REST support the same API
- Inside SOAP and REST, each operation has two levels of complexity, the normal one, and the Lite one.
- Normal operation: can usually be batched (support a list of inputs, e.g. add multiple groups at once), supports complex inputs (arrays or structures)
- Lite operation: supports only inputs of scalars (no structures, no arrays... only Strings, ints, etc). In REST this also means that the request can be sent via query string only
- If SOAP:
- Implement based on WSDL. Note, you cant get the 1.4 WSDL out of a 2.0 server, since it has backwards compatible changes from 1.5 and 1.6. You could get this 1.4 WSDL from SVN though...