Chodzi o to, żeby zachowywać wersję spójną dla klientów. Zauważ, że jakby jakiś framework (typu React czy Angular) używał Twojego API to podczas zmian w budowie zachodziłyby konflikty, co rodziłoby problemy w komunikacji pomiędzy aplikacjami. Chyba, że dev aplikacji klienckiej na żywo, razem z Tobą wprowadzał uaktualnienia, no ale co w wypadku jeśli tych klientów jest kilka, kilkanaście czy kilkadziesiąt.
EDIT: Jeśli nie używasz widoków, które korzystają z JSONa to nie powinieneś uwzględniać tego w kontrolerach.
Nie bardzo zrozumiałem, o jaki wpis chodzi.
Bo taki wpis:
namespace :api, defaults: { format: :json } do
namespace :v1 do
devise_scope :user do
post 'sessions' => 'sessions#create', :as => 'login'
delete 'sessions' => 'sessions#destroy', :as => 'logout'
end
.....
end
end
… to ja już mam.
Liczyłem, że bardziej doświadczeni developerzy podzielą się swoimi refleksjami typu:
“Nie twórz wspólnego ‘makaroni’. Rób tylko w osobnych projekach, gdyż …” lub na jakieś sugestie dotyczące tego, jaki architektonicznie zarys to powinno mieć, ale cóż …
Obejrzyj sobie https://www.youtube.com/watch?v=FpS_E90-6O8 (youtube pozniej Ci zasugeruje sporo podobnych), a pozniej poczytaj posty Steve na temat API/REST i wersjonowania i czy warto.
Nielatwe tematy. Mocno zalezne od kontekstu projektu. Nie ma zlych rozwiazan.
Chciałem powiedzieć, że dopóki nie masz konkretów, to nie mnożysz na zapas bytów (np. owych kontrolerów), a jedynie, jeśli istototnie jest taki wymóg, zapewniasz obsługę owej ścieżki stosownym wpisem w routes.