Non sei molto chiaro su chi sia un partner; o se si sta proteggendo l'accesso ai dati, limitando le chiamate API, o entrambi.
Quello che stai facendo è molto specifico per la tua attività. Supponendo che sia necessario proteggere i dati che i servizi forniscono accesso è necessario autenticare ciascun utente e proteggere il livello di trasporto. Per il primo è necessario avere nome utente e password o un token API univoco per gli utenti finali. Questo dovrebbe essere controllato ad ogni richiesta. La sicurezza del trasporto può essere abilitata utilizzando SSL se si utilizza HTTP per i propri servizi. In genere è più semplice abilitarlo a livello di server Web, non si menziona il fatto che si sta effettuando un hosting speciale di servizi Web.
Supponendo che questa sicurezza sia attiva, dovrebbe fornire una base per il controllo che è ciò che presumo tu intenda per le chiamate di registro. Il nome utente o il token API ti daranno un'idea di chi sta effettuando una chiamata che è fondamentale per il controllo. Quindi creare un elenco di dati che si desidera vedere una traccia di controllo. Chiedi a un utente aziendale se le informazioni registrate possono aiutarti ad affrontare le domande che hai (cosa ti sta spingendo ad aggiungere la registrazione).
Le prossime cose da considerare è dove deve andare il codice di registrazione (c'è un punto centrale? Si utilizza AOP per aggiungerlo?) E dove deve essere registrato il percorso di controllo. Ci sono strumenti come PostSharp che ti permettono di tessere il log attraverso la tua applicazione senza molte modifiche, ma prima di fare questo vedi se c'è un modo semplice per aggiungere una funzione di registro ad una posizione comune nella tua applicazione per "intercettare" le informazioni che ti servono .
Una volta che hai le mani sui dati devi salvarlo da qualche parte. È qui che le cose possono diventare interessanti. Dovrai capire le caratteristiche di prestazione della tua applicazione e quali sono le probabilità di utilizzo. In molte applicazioni è sufficiente accedere a un database, ma a volte questo sarà un problema di prestazioni. La registrazione su file di testo è OK per alcune persone, ma cosa succede se i dati devono essere correlati al database dell'utente? In tal caso è necessario un codice per elaborare i file di registro e importare i dati.
Prima di dedicare troppo tempo alla creazione di qualsiasi codice di registrazione, vale la pena guardare NLog, Log4Net e la Libreria aziendale logging block. Questi sono strumenti generici che potrebbero fornire una base migliore.
Se è necessario applicare le quote utente, è possibile considerare la velocità con cui è possibile elaborare il registro per determinare il numero di chiamate effettuate da un utente. Idealmente, ogni volta che elabori una richiesta in arrivo avresti lo stato attuale di un utente a portata di mano per poter restituire una risposta appropriata. Può essere uno sforzo aggiungere questa funzionalità nelle applicazioni esistenti e fornire l'infrastruttura per supportarla.
Se utilizzare REST, JSON, XML, SOAP ecc. Dipende molto dal pubblico. Utilizzeranno linguaggi come Ruby e Python per chiamare i servizi o utilizzeranno .NET? Se saranno principalmente.Gli utenti della rete potrebbero quindi non avere molto senso costruire interfacce puramente REST usando JSON poiché .NET rende SOAP molto facile. Dall'altra parte della scala, SOAP e XML succhiano se si utilizza JavaScript sul lato client. Ricorda solo che non c'è una risposta giusta senza ulteriori informazioni sui tuoi utenti. Generalmente JSON non è una panacea e XML non è sempre l'opzione peggiore.
Aggiornamento
io non sono interessato a rilievo nostri partner per i quali formati/protocolli avevano preferiscono, dal momento che uno dei requisiti è la possibilità di aggiungere nuovi partner senza il coinvolgimento IT . Avrei proprio come alcuni suggerimenti sulle migliori pratiche, in modo che stiamo facendo il modo "giusto" e possono essere conformi.
L'opzione più flessibile è probabilmente REST e XML. Questo ampiamente supportato dal momento che quasi tutte le piattaforme hanno uno stack HTTP. XML è probabilmente più flessibile di JSON per rappresentare i tuoi dati. Vorrei iniziare qui e tornare indietro in termini di supporto, magari aggiungendo JSON. Tuttavia questo non è quello che definirei un approccio incentrato sul cliente. Se questa è una caratteristica fondamentale di una piattaforma, dovresti davvero interessarti a ciò che vogliono i tuoi clienti. Ehi, anche se oggi fai un rapido sondaggio, avrai un punto di partenza più ragionevole. Se conosci qualche sviluppatore di partner potresti essere in grado di supporre ciò che preferirebbero dagli strumenti e dai linguaggi che usano (anche andando a guardare i loro annunci di lavoro potrebbe darti un'idea di se sono un .NET o Java negozio - lontano da un approccio scientifico però).
congrats, fratello. Di tutte le risposte, ho ottenuto il massimo della trazione con questo, per quanto breve. Al momento stiamo valutando una partnership con 3Scale per gestire un sacco di cose che avrei dovuto fare da solo. Non spendere il rappresentante in un unico posto. –
Grazie grazie –