@Riddle: Nie do końca rozumiem pytanie, ale jeśli dobrze zgaduję, to pytasz o co tu chodzi,
idea jest taka, że tworzę serwis, który ma jakieś endpointy. Każdy endpoint ma zdefiniowany payload, który trzeba mu wysłać i też to co ten endpoint zwraca.
No to siadam do kodu i muszę stworzyć struktury, które reprezentują ten payload i zwrotkę. Serwis zazwyczaj mogą mieć sporo takich endpointów, więc miałbym sporo pisania kodu, który w sumie mógłbym wygenerować. Do tego dochodzi jeszcze trochę więcej rzeczy, które można wygenerować np. niektóre pola muszę spełniać jakieś warunki tzn. może coś np. musi być emailem, może coś musi być liczbą a nie stringiem etc. Bez generowania niczego bym musiał siedzieć i pisać ten kod, ale po co jeśli jest jakieś narzędzie, które może go wygnerować. No i do tego wszystkiego, dobrze, żeby serwis miał dokumentację, więc ja lubię podchodzić do tego w ten sposób, że pisze najpierw dokumentację w openapi, bo i tak jej potrzebuję. Jak przejdę całą tą przygodę w ten sposób, to kończę z działającym kodem i odpowiednią dokumentacją co wg mnie jest super. Oczywiście im bardziej niestandardowe endpointy, to tym trudniej do tego w ten sposób podejść.
:|
No to to jeszcze bardziej brzmi jak na to się powinno nałożyć abstrakcję, zamiast "generować" cokolwiek.
No to siadam do kodu i muszę stworzyć struktury, które reprezentują ten payload i zwrotkę
- no widocznie nie musisz, skoro one są na tyle powtarzalne, przewidywalne i samopodobne że jakiś genrator jest w stanie je wytworzyć.
Serwis zazwyczaj mogą mieć sporo takich endpointów, więc miałbym sporo pisania kodu, który w sumie mógłbym wygenerować.
a to z kolei żywcem brzmi jak nieumiejętność reużywania kodu. Zamiast tego ja bym powiedział "Serwis wymaga obsługiwać wiele różnych pathów, ale skoro da się je przewidzieć, to można je schować w abtrakcji, która oszczędzi mi sporo pisania kodu".
Powinna powstać warstwa abstrakcji w której musisz podać tylko te rzeczy które wsadzasz do tego generatora (np to czy pole jest emailem czy nie), i to po prostu działa - bez żadnych struktur. Taka warstwa abstrakcji powinna się zapiąć pod kontrolery, które powinny własnie ją obsługiwać zamiast te wasze struktury. Wtedy nie musiałbyś nic generować, a kod byłby krótszy i prostszy.