Comments (6)
I agree, but mostly because I don't know where "JSON uses under_score" comes from — I've never heard that as a given.
from api-standards.
I think it comes largely from the Perl, Ruby and Python communities that generally prefer under_score to camelCase. Those are my people, but I recognize that there are other ways of doing it, and maybe it isn't really the place for this document to say do it one way? If there was some other JSON effort pushing for this standardization I would be happy to see it.
from api-standards.
I'd prefer to be agnostic and to just recommend consistency, than to recommend camelCase. JSON emerged from JavaScript, but it's used now as a generic transport format with ubiquitous support in many languages.
Ruby and Python drive a lot of 18F's work, and to a lesser (but real) degree, Node. In Node, things do lean more camelCase, but even there it's not as absolute as in client-side JavaScript. If other 18Fers would prefer to remove the under_score recommendation, we can definitely do that.
from api-standards.
FWIW, we've thought a lot about this and came to the conclusion that underscore was the way to go even in our client-side Javascript (we use Python on the backend). It's not the recommended way of doing things, but keeping things consistent has been nice. As an extension of this, our XML and JSON also have underscores. So +1 for underscores, FWIW.
from api-standards.
I agree with @mlissner and @konklone: consistency is what is important. Encouraging API designers to consciously pick under_score or camelCase and stick to it seems like the right way to go.
from api-standards.
I tend to use under_score
keys because Ruby has infiltrated by brain, but there are also good arguments for using CamelCase
. I am on board with recommending consistency over underscore so I opened #64
from api-standards.
Related Issues (20)
- Hypermedia APIs HOT 4
- Coordinate with 18F team owners HOT 1
- Standard length of time provided for deprecation, changes? HOT 1
- "Don't use unpredictable keys" (in response JSON) HOT 1
- Possibly include link header in pagination section? HOT 3
- Specify date format standard HOT 5
- avoid using "entropy"
- for discussion: HTTPS everywhere HOT 1
- expand acceptable input param vehicles to include full URIs
- What data should go in headers, and what data in the response body HOT 14
- Stacktraces in production HOT 1
- New APIs should require SNI of their users
- Request to change description to make it clearer for users HOT 4
- Data envelopes and format of `results` attribute HOT 3
- This repo should be converted to 18F Pages HOT 9
- Shouldn't this repo have a LICENSE? HOT 2
- Singluar vs. Plural Nouns HOT 1
- Justify use of charset parameter in JSON payloads HOT 2
- FBOpen links returning a 404 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from api-standards.