NISO Best Practices for Web Services
NISO now has a document that identifies best practices for those of you writing web services — Best Practices for Designing Web Services in the Library Context. Web services, in this context, is:
. . . a technology that allows applications to communicate with each other in a platform- and programming language-independent manner. A Web service is a software interface that describes a collection of operations that can be accessed over the network through standardized XML messaging. It uses protocols based on the XML language to describe an operation to execute or data to exchange with another Web service.
The issues dealt with include:
- Simple, small interfaces are desirable — easier to document, test, maintain, understand; possibly may be more robust and provide shorter implementation timelines.
- Document the service interface.
- Enable HTTP caching:
- Prefer HTTP GET for requests that do not modify the state of the service.
- Responses should include an ETag HTTP header.
- Responses should include a Last-Modified HTTP header.
- Prefer conditional GET headers over the Expires HTTP header.
- Avoid user specific information in URLs.
- Filter user input.
- Reuse existing output formats.
- Document output formats, e.g., DTD, XML schema, RDF schema, Relax NG, DSD.