Ho creato un'API (web) con un paio di endpoint, che a loro volta hanno molte operazioni CRUD. Il codice stesso è conforme ai principi SOLID. Ora ho un consumer per quell'API che afferma che se usano la mia API infrangerà i principi SOLID alla loro fine perché la mia API fornisce più funzionalità di quelle che richiedono.
Ha senso per quanto riguarda Principio di segregazione dell'interfaccia .
ISP splits interfaces that are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them.
Diciamo che ho un'API che gestisce i clienti. Ha metodi per creare, leggere, aggiornare e rimuovere i clienti. Ma il consumatore non ha bisogno di aggiornare o rimuovere. Dovrei quindi creare una nuova API che ometta i metodi di aggiornamento e rimozione? E quindi solo fornire metodi che sono di interesse per il consumatore?
Ad esempio, se intendi utilizzare l'API Facebook Graph molto probabilmente fornirà più funzionalità di quelle necessarie. Significa che infrangi i principi SOLIDI quando lo usi?