Preferencing snake_case over camelCase is an odd choice, and unnecessary. Preference will largely come down to the technology stack – CamelCase for Java/JavaScript and snake_case for Python/Ruby. In terms of common usage, the weight is with camelCase at this point in time. Several federal departments/agencies currently mandate the use of camelCase for member/field names. As per the JSON-API, restfulapi.net, google and Microsoft guidance and JavaScript standard convention (https://www.w3schools.com/js/js_conventions.asp).
It is suggested that the naming conventions should be reworded to remove any explicit preference of one convention over the other.
Additionally, the text should be reworded to refer to "case" explicitly, rather than 'message format', and stress consistency.
Suggested change:
Message Format
For request and response body field names and query parameter names case MUST be consistent, and SHOULD be either camelCase OR snake_case:
Fields that represent arrays SHOULD be named using plural nouns (e.g. products - contains one or more products).
The object and field definition must be the same for the request and response body as well as corresponding query parameters.
Preferencing snake_case over camelCase is an odd choice, and unnecessary. Preference will largely come down to the technology stack – CamelCase for Java/JavaScript and snake_case for Python/Ruby. In terms of common usage, the weight is with camelCase at this point in time. Several federal departments/agencies currently mandate the use of camelCase for member/field names. As per the JSON-API, restfulapi.net, google and Microsoft guidance and JavaScript standard convention (https://www.w3schools.com/js/js_conventions.asp). It is suggested that the naming conventions should be reworded to remove any explicit preference of one convention over the other. Additionally, the text should be reworded to refer to "case" explicitly, rather than 'message format', and stress consistency.
Suggested change:
Message Format For request and response body field names and query parameter names case MUST be consistent, and SHOULD be either camelCase OR snake_case:
Examples:
Fields that represent arrays SHOULD be named using plural nouns (e.g. products - contains one or more products). The object and field definition must be the same for the request and response body as well as corresponding query parameters.