API routování – více verzí API

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
japanese
Člen | 2
+
0
-

Dobrý den,
jak by mělo správně vypadat nastavení rout (a případně adresářová struktura), pokud bych chtěl mít API, např.

/api/1.0/presenter/action
/api/2.3/presenter/action

Jak se taková aplikace navrhuje z hlediska různých verzí API? Používá se jeden presenter, který se chová různě, podle toho na jakou verzi API byl zaslán dotaz?

Děkuji

Tharos
Člen | 1030
+
+6
-

To záleží na tom, jak hodně se od sebe takové verze 1.0 a 2.3 liší. :) Jinak řečeno záleží na sémantice Tvého verzování.

Pokud například děláš napříč major verzemi větší změny s BC breaky a napříč minor verzemi zpětnou kompatibilitu udržuješ, mohlo by pro Tebe být výhodné mít pro každou major verzi samostatný modul (v duchu Api:V1:<Presenter>, Api:V2:<Presenter>…) a ty minor verze si řešit už jen nějakým parametrem v presenteru…

Ale vhodných přístupů je více. :)

Editoval Tharos (26. 2. 2015 10:14)

japanese
Člen | 2
+
0
-

Tharos napsal(a):

To záleží na tom, jak hodně se od sebe takové verze 1.0 a 2.3 liší. :) Jinak řečeno záleží na sémantice Tvého verzování.

Pokud například děláš napříč major verzemi větší změny s BC breaky a napříč minor verzemi zpětnou kompatibilitu udržuješ, mohlo by pro Tebe být výhodné mít pro každou major verzi samostatný modul (v duchu Api:V1:<Presenter>, Api:V2:<Presenter>…) a ty minor verze si řešit už jen nějakým parametrem v presenteru…

Ale vhodných přístupů je více. :)

Díky!