Un'app mobile richiede più accesso rispetto all'API pubblica di un sito?

7

Ho un sito con un'API pubblica e alcuni sviluppatori di app per dispositivi mobili sono stati introdotti per produrre un'app per iPhone per il sito. Insistono sulla necessità di vedere lo schema del database, ma a quanto ho capito, dovrebbero solo avere accesso all'API pubblica documentata.

Ho ragione? C'è qualcosa che ho perso? Ho detto loro che se manca una funzionalità o se i dati richiedono, posso estendere l'API in modo che possano accedervi. Ho pensato che un'API di servizi web mantenesse gli stessi principi delle API degli oggetti OOP, in quanto i dettagli di implementazione dovrebbero essere nascosti il più possibile.

Non sono uno sviluppatore di app per dispositivi mobili, quindi se c'è qualcosa che non vedo, ti preghiamo di farcelo sapere. Qualsiasi intuizione o aiuto sarà molto apprezzato.

Aggiornamento: il team mobile fa parte di un servizio di consulenza finanziato dal governo per le start-up. Da allora ho scoperto che il project manager, che spinge così tanto per vedere il database e altri interni, lavora anche per un'agenzia di sviluppo web. Non posso dire con certezza quali fossero le sue ragioni per voler vedere questa roba, ma considerando che una volta non ha fornito una motivazione tecnica valida , trovo che ciò sia ancora più preoccupante di quello che ho fatto in quel momento.

    
posta Iain 30.11.2012 - 19:58
fonte

3 risposte

9

Potrebbero voler vedere lo schema in modo che possano replicarlo sul dispositivo mobile. Ciò li salverà un po 'di lavoro. Inoltre, vedere lo schema potrebbe impedire loro di fare ipotesi errate su come i loro dati dovrebbero essere strutturati sulla base di informazioni potenzialmente incomplete sul database.

Tuttavia, dovrebbero davvero venire con il proprio schema progettato attorno alla struttura dei dati API che è stato progettato per funzionare all'interno dei vincoli del dispositivo. Un server SQL ha in genere maggiore potenza di elaborazione e spazio di archiviazione di un telefono, quindi perché replicare la struttura di backend quando il dispositivo client non ha la capacità di gestirlo? Se stanno lavorando su iOS e utilizzano CoreData, provare a pensare in un modo simile a SQL è potenzialmente controproducente in quanto gestiranno un grafico di oggetti gerarchici, non una raccolta di tabelle.

Direi che gli sviluppatori non dovrebbero avere più conoscenza del back-end di quanto non possano ottenere guardando l'API e sfogliando la sua documentazione. Sono completamente d'accordo con te: l'API nasconde i dettagli di implementazione di cui gli sviluppatori mobili non dovrebbero preoccuparsi. Come bonus, forzandoli a lavorare con l'API evidenzierà molto rapidamente eventuali problemi di progettazione e bug.

(Sono un ex sviluppatore di backend / web frontend che è passato al lavoro mobile.)

    
risposta data 30.11.2012 - 20:21
fonte
5

Am I right? Is there something I've missed?

Hai ragione. Potrebbe esserci o meno qualcosa che ti è mancato nell'API, ma non c'è nulla di strano nello scrivere un'app mobile che richiederebbe agli sviluppatori di sapere come è lo schema del tuo database . Al contrario, più si basano sulla tua API pubblica e meno si basano su dettagli di implementazione privati come lo schema del tuo database, meglio è. Idealmente, non dovrebbero aver bisogno di sapere nulla su come funziona il tuo servizio. L'intero scopo di avere un'interfaccia Interfaccia del programma applicativo è di evitare che le app debbano fare affidamento su informazioni private.

Tutto ciò che è stato detto, è possibile che la tua API non fornisca tutto ciò che è necessario per implementare le funzionalità che i ragazzi delle app mobili hanno in mente. A meno che non siano davvero irragionevoli, dovrebbero essere in grado di apprezzare il vantaggio (per loro e anche per te) di scrivere su un'interfaccia pubblica, quindi dovrebbero essere disposti a) leggere e lavorare con la tua API, e b) lavorare con te per correggere eventuali buchi nell'API.

    
risposta data 30.11.2012 - 21:25
fonte
4

Sembra che vogliano solo capire il modello di dominio.

Forse se fornisci loro un diagramma delle relazioni di entità in UML con tutte le classi di dominio e le loro relazioni, allora avranno una conoscenza approfondita di tutto ciò che hanno bisogno di sapere. In effetti, tutto ciò che hanno bisogno di sapere e un argomento può essere fatto anche per proteggere i segreti commerciali sensibili qui.

Ho visto queste cose richieste attraverso i dipartimenti interni dove i clienti di un'API di servizi Web in un altro dipartimento richiedevano tutta la documentazione del progetto prima di iniziare, e il loro ragionamento era che questo particolare gruppo di sviluppatori responsabile di questi servizi web aveva un reputazione notoria per lo sviluppo di software non testato terribile. Quando altri team hanno riscontrato problemi con i loro servizi Web scarsamente documentati, avevano bisogno di capire il più possibile il loro sistema in modo tale che il gruppo di client fosse in grado di diagnosticare autonomamente e indirizzare il gruppo di servizi Web in ciò che stavano facendo male.

Probabilmente questo team mobile non si accontenta di prendere in giro i tuoi servizi web perché potrebbero essere stati masterizzati in passato da precedenti gruppi di sviluppatori di servizi Web che hanno svolto un lavoro scarso. Quando i test di integrazione iniziano a fallire contro il proprio ambiente, non saranno in grado di comunicare ai propri superiori che hanno completato le proprie attività, quindi preferiscono probabilmente un ambiente di servizio Web completo che controllano in modo che possano eseguire correttamente i test di integrazione. senza bisogno del tuo coinvolgimento.

    
risposta data 30.11.2012 - 22:01
fonte

Leggi altre domande sui tag