Skip to navigation

Partially update a catalogue program

View as Markdown

Partially updates a program, using JSON Merge Patch semantics (RFC 7386):

  • a field present with a value is set
  • a field present as null is CLEARED
  • a field you omit is left exactly as it was

That last point is the difference from PUT, which replaces: there, omitting a field clears it. Use PATCH when a system that only knows, say, the name and its own externalIds needs to correct one of them without resending the other six fields correctly.

An unknown field name is a 400 rather than being ignored. Under merge semantics a typo would otherwise do nothing at all, silently.

externalIds still merges per system, and null is rejected there: omit it to leave existing ids alone. code and year identify the program and can’t be patched.

Authentication

AuthorizationBearer

Paste a Keycloak access token (no "Bearer " prefix)

Path parameters

codestringRequired
yearintegerRequired

Request

Only the fields you want to change. Same field names as the PUT body; send a field as null to clear it.

namestringOptional
kindstringOptional

single | double_degree | research. Only single and double_degree can be promoted to an assessable program.

creditPointsintegerOptional

Total credit points (UOC) for the program.

levelstringOptional
fieldOfEducationstringOptional
Empty string and null both clear the stored value.
facultyNamestringOptional
The owning faculty's name as your system records it. The matching group on our side is resolved separately, so this is a label, not a link.
schoolNamestringOptional
externalIdsmap from strings to stringsOptional

Your own identifiers for this program, keyed by system name, e.g. {"handbook": "34ffd3cd93772210d45cb2ea6aba10b7"}. Merged per system: a system you omit keeps its existing id. An id already used for a different program is rejected.

Response

The supplied fields were applied; everything else is unchanged.

idstringOptionalformat: "uuid"
Our stable id for the program, unchanged by an update.
codestringOptional
yearintegerOptional
statusstringOptional

Always updated from this endpoint.

Errors

400
Bad Request Error
404
Not Found Error