formalize business logic for certain attributes (GPA, class)
There are a number of attributes -- particularly for student resources -- that depend on business logic that isn't well-defined across campus. The most famous example of this is GPA, which must be calculated based on a number of different fields, taking into account a number of caveats about different types of courses, etc. To make matters worse, the business logic that defines this calculation is not well-documented (as far as I know) and results in potentially different results in different applications that may or may not properly calculate the GPA using the same rules of the registrar's office. Whenever possible, these business rules should be formalized and encoded into the web service so that the calculated value is returned in the resource payload.
Another example here is class standing (e.g., Freshman, Sophomore, etc.). When a student graduates, their class standing, according to UW systems, remains as "Senior" because technically that is the only valid value at that moment. Until a student becomes a graduate student, there is no other option in the class codes that can signify "recently graduated" or something similar. Thus, in our application, we check to see if this student has any valid degrees AND they have a class standing of "4" (senior) and return "Graduated <Quarter>" if so. The web service should either provide information in a practical format, or at least provide me with the information I need to easily display the data in a useful way without requiring one or more additional calls to other resources just to provide data in a way that makes practical sense.
Gary Prohaska commented
Great suggestion! As of yet, the Student Web Service (SWS) only provides representations for data stored in the SDB database. In the same way that business rules are invoked to validate Web grades, rules should also be invoked to return "calculated" data in the resource payload.