Affects Version/s: 4.5
Fix Version/s: 4.6
Subtle bugs have arisen over the years (and still continue to be a problem) due to the api's support of multiple naming conventions for each entity and action. Currently the api supports:
The list could go on, nearly any combination of upper and lowercase letters and underscores works. This wouldn't be so bad if the civicrm_api wrapper immediately converted all incoming entity strings into a standardized format, but it doesn't, so it's left up to lower-down functions to fend for themselves, and sometimes (for example the permission system) they can't recognize the format. Here's my proposal:
- For the remainder of the v3 lifecycle, we continue to support all of the above formats.
- Internally, we settle on a standard and the civicrm_api wrapper will immediately convert incoming entity and action names to that format.
- We consider dropping support for nonstandard formats in future versions of the api.
My proposed standard is CamelCase for entities (with first letter capitalized) and lowercase for actions. These are the formats currently returned by api.Entity.get and api.getactions, respectively, so they are the formats presented in the api explorer.