Nazewnictwo klas w drugiej wersji implementacji API

0

Hejka. Jaką konwencję najpoprawniej przyjąć dla nazywania dtosa przy tworzeniu v2 kontrolera. Czyli mam jakiegoś get zwracający BookDto, ścieżka: "v1/books/book/{bookId}". Teraz tworzę drugą wersję Geta, ścieżka: "v2/books/book/{bookId}" i jak nazwać poprawnie tego nowego, zwracanego Dtosa dla drugiej wersji enpointu? Dzięki!

2

Nie traktuj tego jako "drugiej wersji tego samego", tylko jako zupełnie osobny moduł, zrób osobny namespace, nazwij go inaczej; nie szukaj żadnego podobieństwa nowej wersji ze starą, nic Ci to nie da.

0

To jest rozwiązanie, ale nie mam aż takiego pola manewru (nie ode mnie to zależy). Robimy v2. I mam zrobić research jak inni nazywają Dtosa. Może coś takiego?
https://steven-giesel.com/blogPost/1cfd1d5b-4980-4c60-9dad-538f5684cafd Czyli Byłoby BookDtoV2. Co myślisz?

2
fafikowski napisał(a):

To jest rozwiązanie, ale nie mam aż takiego pola manewru (nie ode mnie to zależy). Robimy v2. I mam zrobić research jak inni nazywają Dtosa. Może coś takiego?
https://steven-giesel.com/blogPost/1cfd1d5b-4980-4c60-9dad-538f5684cafd Czyli Byłoby BookDtoV2. Co myślisz?

Po prostu zrób nowy moduł tak, jakby stary nie istniał.

fafikowski napisał(a):

Robimy v2. I mam zrobić research jak inni nazywają Dtosa. Może coś takiego?

Moim zdaniem pomysł zupełnie od czapy. Jaki jest sens robić nową wersję, jeśli będzie wyglądała podobnie jak stara?

Na pewno nie dodawaj V2 do nazw klas, jeśli już to do przestrzeni nazw, coś w stylu com.application.http.v2.BookDto.

0

Dzięki, Riddle!

0
fafikowski napisał(a):

Dzięki, Riddle!

Ale jak już mówiłem - szukanie podobieństw między starą i nową wersją nie ma sensu - skoro padła decyzja o przepisaniu modułu, to ona zapadła żeby wprowadzić jakieś zmiany. Trzymanie się kurczowo starej wersji jest bez sensu.

0

Zgadzam się, ale padła sugestia, żeby jednak jakoś powiązać, ale też.. odróżniać dtosy. Np. dodać deprecated do nazwy albo v coś tam. Ale Twój pomysł mi się bardziej podoba..

3
fafikowski napisał(a):

Zgadzam się, ale padła sugestia, żeby jednak jakoś powiązać, ale też.. odróżniać dtosy. Np. dodać deprecated do nazwy albo v coś tam.

Nic nie zyskasz powiązując je, a możesz sobie tylko utrudnić życie.

Może dojść do sytuacji w której zmieniasz coś w wersji v2, i nagle zmienia się coś w wersji v1. Bardzo słaby pomysł.

1 użytkowników online, w tym zalogowanych: 0, gości: 1