- 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...
Grouper client version
v1.4, v1.5, v1.6, v2.0 (server version) Endpoint
WSDL from server
WSDL from SVN
- If REST:
- Decide what format you want to send and receive data. grouper-ws supports XHTML, XML, and JSON, as well as query strings for input (in URL or message body)
- For example, in the URL you can set the content type you want back: