Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated header casing bullet in section 17.2 #207

Open
wants to merge 2 commits into
base: vNext
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion Guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -2162,7 +2162,7 @@ Services SHOULD use verbose naming patterns and SHOULD NOT use abbreviations oth
### 17.2. Casing
- Acronyms SHOULD follow the casing conventions as though they were regular words (e.g. Url).
- All identifiers including namespaces, entityTypes, entitySets, properties, actions, functions and enumeration values SHOULD use lowerCamelCase.
- HTTP headers are the exception and SHOULD use standard HTTP convention of Capitalized-Hyphenated-Terms.
- Ideally, HTTP headers are sent over hte wire using lowercase letters a the HTTP/2 specification mandates this ([RFC](https://http2.github.io/http2-spec/#HttpHeaders)). For backwards compatibility, services should treat request headers in a case-insensitive fashion. New services should send response headers in all lowercase. For legacy services (which do not send lowercase response headers), the client should process the response headers in a case-insensitive fashion. If a client converts headers into a map/dictionary where the lanaguge does not support looking up keys in a case-insensitive way, the client library should lowercase the header keys when adding them to the map/dictionary.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hte -> the. a -> as.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Jeffrey - thanks for the contribution. We're rather behind on reviewing PRs at this point, but we appreciate it nonetheless.

As well as Peter's comments above, can I ask that you express this change in normative language please. For example, I would have expected the backwards compatibility clause to be a MUST rather than a SHOULD, and capitalized regardless.

Also, it appears the link to the HTTP2 spec has become outdated. I believe this is now the correct link. https://httpwg.org/specs/rfc7540.html#HttpHeaders

I'm not sure I agree with the proposal for new services to return headers in lower case. It seems to me for optimum compatibility with marginally compliant older client implementations, this should be protocol dependent. If serving over Http/1.x services should return using the Capitalized-Hyphenated style whereas Http/2 should use lowercase-hyphenated.

Client behavioral guidance should be broken out from the main text, as these are not primarily client guidelines.


### 17.3. Names to avoid
Certain names are so overloaded in API domains that they lose all meaning or clash with other common usages in domains that cannot be avoided when using REST APIs, such as OAUTH.
Expand Down