versioning

How to manage REST API versioning with spring?

这一生的挚爱 提交于 2019-11-26 04:03:44
问题 I\'ve been searching how to manage a REST API versions using Spring 3.2.x, but I haven\'t find anything that is easy to maintain. I\'ll explain first the problem I have, and then a solution... but I do wonder if I\'m re-inventing the wheel here. I want to manage the version based on the Accept header, and for example if a request has the Accept header application/vnd.company.app-1.1+json , I want spring MVC to forward this to the method that handles this version. And since not all methods in

Database Design for Revisions?

时光怂恿深爱的人放手 提交于 2019-11-26 03:46:36
问题 We have a requirement in project to store all the revisions(Change History) for the entities in the database. Currently we have 2 designed proposals for this: e.g. for \"Employee\" Entity Design 1: -- Holds Employee Entity \"Employees (EmployeeId, FirstName, LastName, DepartmentId, .., ..)\" -- Holds the Employee Revisions in Xml. The RevisionXML will contain -- all data of that particular EmployeeId \"EmployeeHistories (EmployeeId, DateModified, RevisionXML)\" Design 2: -- Holds Employee

How can I force clients to refresh JavaScript files?

风格不统一 提交于 2019-11-26 03:14:00
问题 We are currently working in a private beta and so are still in the process of making fairly rapid changes, although obviously as usage is starting to ramp up, we will be slowing down this process. That being said, one issue we are running into is that after we push out an update with new JavaScript files, the client browsers still use the cached version of the file and they do not see the update. Obviously, on a support call, we can simply inform them to do a ctrl F5 refresh to ensure that

A definitive guide to API-breaking changes in .NET

放肆的年华 提交于 2019-11-26 02:26:58
I would like to gather as much information as possible regarding API versioning in .NET/CLR, and specifically how API changes do or do not break client applications. First, let's define some terms: API change - a change in the publicly visible definition of a type, including any of its public members. This includes changing type and member names, changing base type of a type, adding/removing interfaces from list of implemented interfaces of a type, adding/removing members (including overloads), changing member visibility, renaming method and type parameters, adding default values for method

How to version REST URIs

断了今生、忘了曾经 提交于 2019-11-26 02:26:53
问题 What is the best way to version REST URIs? Currently we have a version # in the URI itself, ie. http://example.com/users/v4/1234/ for version 4 of this representation. Does the version belong in the queryString? ie. http://example.com/users/1234?version=4 Or is versioning best accomplished another way? 回答1: I would say making it part of the URI itself (option 1) is best because v4 identifies a different resource than v3. Query parameters like in your second option can be best used to pass-in

A definitive guide to API-breaking changes in .NET

左心房为你撑大大i 提交于 2019-11-26 01:50:30
问题 I would like to gather as much information as possible regarding API versioning in .NET/CLR, and specifically how API changes do or do not break client applications. First, let\'s define some terms: API change - a change in the publicly visible definition of a type, including any of its public members. This includes changing type and member names, changing base type of a type, adding/removing interfaces from list of implemented interfaces of a type, adding/removing members (including

How to compare two strings in dot separated version format in Bash?

*爱你&永不变心* 提交于 2019-11-26 01:26:25
问题 Is there any way to compare such strings on bash, e.g.: 2.4.5 and 2.8 and 2.4.5.1 ? 回答1: Here is a pure Bash version that doesn't require any external utilities: #!/bin/bash vercomp () { if [[ $1 == $2 ]] then return 0 fi local IFS=. local i ver1=($1) ver2=($2) # fill empty fields in ver1 with zeros for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)) do ver1[i]=0 done for ((i=0; i<${#ver1[@]}; i++)) do if [[ -z ${ver2[i]} ]] then # fill empty fields in ver2 with zeros ver2[i]=0 fi if ((10#${ver1[i]} >

How do you compare two version Strings in Java?

一笑奈何 提交于 2019-11-25 23:54:04
问题 Is there a standard idiom for comparing version numbers? I can\'t just use a straight String compareTo because I don\'t know yet what the maximum number of point releases there will be. I need to compare the versions and have the following hold true: 1.0 < 1.1 1.0.1 < 1.1 1.9 < 1.10 回答1: Tokenize the strings with the dot as delimiter and then compare the integer translation side by side, beginning from the left. 回答2: Another solution for this old post (for those that it might help) : public

Definition of “downstream” and “upstream”

穿精又带淫゛_ 提交于 2019-11-25 22:15:06
问题 I\'ve started playing with Git and have come across the terms \"upstream\" and \"downstream\". I\'ve seen these before but never understood them fully. What do these terms mean in the context of SCMs (Software Configuration Management tools) and source code? 回答1: In terms of source control, you're " downstream " when you copy (clone, checkout, etc) from a repository. Information flowed "downstream" to you. When you make changes, you usually want to send them back " upstream " so they make it

Best practices for API versioning? [closed]

巧了我就是萌 提交于 2019-11-25 21:56:39
问题 Closed . This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing this post. Closed 5 years ago . Locked . This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions. Are there any known how-tos or best practices for web service REST API versioning? I have noticed