What is the best way to handle versioning using JSON protocol?

The key to versioning JSON is to always add new properties, and never remove or rename existing properties. This is similar to how protocol buffers handle versioning. For example, if you started with the following JSON: { “version”: “1.0”, “foo”: true } And you want to rename the “foo” property to “bar”, don’t just rename … Read more

REST api versioning (only version the representation, not the resource itself)

I completely agree; a URI expresses identity, identity doesn’t change when a new version is introduced. There might be new URIs for additional concepts, of course, and existing URIs might redirect … but including a “v2” in the URI smells RPCish to me. Note that this has got nothing to do with REST, really, as … Read more

Database – Data Versioning [closed]

I have done various audit schemes over the years and I am currently going to implement something like this: Person ———————————————— ID UINT NOT NULL, PersonID UINT NOT NULL, Name VARCHAR(200) NOT NULL, DOB DATE NOT NULL, Email VARCHAR(100) NOT NULL Person_History ———————————————— ID UINT NOT NULL, PersonID UINT NOT NULL, Name VARCHAR(200) NOT NULL, … Read more

Should I pin my Python dependencies versions?

The reason the two other answers contradict each other is that they’re both right (and worth reading), but they apply to different situations. If you’re releasing a library on PyPI, you should declare whatever dependencies you know about, but not pin to a specific version. For example, if you know you need >= 1.2, but … Read more

Java project: should .classpath .project file be committed into repository? [duplicate]

There is nothing wrong with checking in .project and .classpath. I would do so, if your build.xml isn’t able to create both of the files for you. As you said, it’s uncomfortable to miss these files when you try to create a new eclipse workspace. Before you check in .classpath you should be sure that … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)