Хорошо известно, что у нас есть коллекции и сущности.
GET /things -> List<Thing>
GET /things/1 -> Thing
Но что, если thing 1
может существовать в разных версиях. Это нарушает принцип, согласно которому один идентификатор выделяет один ресурс.
GET /things/1 -> List<Thing>
GET /things/1/v1 -> Thing
Некоторые свойства thing 1
, конечно, не одинаковы в разных версиях.
/things/1/v1/subthings != /things/1/v2/subthings
Но некоторые всегда
/things/1/v1/id == /things/1/v2/id
/things/1/v1/name == /things/1/v2/name
Кроме того, thing 1
может иметь другие версии, отличные от thing 2
.
Допустим, я делаю /things/1
недопустимым идентификатором ресурса. Тогда можно ли получить все subthings
в разных версиях?
GET /things/1/subthings
Любой «стандарт» или идеи о том, как go иметь несколько версий сущности?