...
We at Columbia choose version to be part of URL:
https://api.columbia.edu/{app}/{v}/{resources}
Version should be kept to the right of the app name. We choose to prefix 'v' as part of version and use only the ordinal numbers, like “v1”, “v2”, etc.
...
GET https://api.columbia.edu/{app}/{v}/{resources} - Retrieves a list of resources
GET https://api.columbia.edu/{app}/{v}/{resources}/{id} - Retrieves a specific resource
POST https://api.columbia.edu/{app}/{v}/{resources} - Creates a new resource using JSON payload
PUT https://api.columbia.edu/{app}/{v}/{resources}/{id} - Updates resource info
PATCH https://api.columbia.edu/{app}/{v}/{resources}/{id} - Partially updates the resource
DELETE https://api.columbia.edu/{app}/{v}/{resources}/{id} - Deletes the resource
Search GET https://api.columbia.edu/{app}/{v}/{resources}?filter=[{”{attribute1}”,”{op1}”,”{value1}”},…,{”{attribute2}”,”{op2}”,”{value2}”}]&sortBy={attribute}&sortOrder={asc|desc} - Search for resource(s) in collection
Fields List GET https://api.columbia.edu/{app}/{v}/{resources}?fields={“field1”,”field2”,…,”fieldN”}
...
GET https://api.columbia.edu/directory/v1/people - Retrieves a list of People from directory
GET https://api.columbia.edu/directory/v1/people/jd1234 - Retrieves John Doe's information based on UNI
POST https://api.columbia.edu/directory/v1/people - Creates a new employee using JSON payload
PUT https://api.columbia.edu/directory/v1/people/jd1234 - Updates John Doe's info in Directory
PATCH https://api.columbia.edu/directory/v1/people/jd1234 - Partially updates the John Doe's info in Directory
DELETE https://api.columbia.edu/directory/v1/people/jd1234 - Deletes John Doe's record in directory
Search GET https://api.columbia.edu/directory/v1/people?filter=[{“surname”,”like”,”Smith*”}]&sortBy=“surname”&sortOrder=“asc” - Search for people with surnames starting with Smith
...
GET https://api.columbia.edu/{app}/{v}/console: API console (MuleSoft APIkit).
GET https://api.columbia.edu/{app}/{v}/resourceTypes: An endpoint used to discover the types of resources used by this app.
GET https://api.columbia.edu/{app}/{v}/types : (schemas) Introspect resource and attribute definitions.
...
SSL Everywhere
Always use SSL, no exceptions. This is enforced at the f5 load balancer (api.columbia.edu) which terminates SSL sessions.
...