No tiene muy claro quién es un compañero; o si está protegiendo el acceso a los datos, limitando las llamadas API, o ambos.
Lo que está haciendo es probable que sea muy específico para su negocio. Suponiendo que necesita proteger los datos a los que los servicios proporcionan acceso, necesita autenticar a cada usuario y proteger la capa de transporte. Para el primero, debe tener un nombre de usuario y contraseña, o un token de API exclusivo para los usuarios finales. Esto debe verificarse en cada solicitud. La seguridad del transporte se puede habilitar utilizando SSL si usa HTTP para sus servicios. En general, es más fácil habilitar esto en el nivel del servidor web, no mencionas que estás haciendo un hosting especial de servicios web.
Suponiendo que esta seguridad está en su lugar, debe proporcionar una base para la auditoría que es lo que supongo que quiere decir con llamadas de registro. El nombre de usuario o token de la API le dará una idea sobre quién realiza una llamada, que es fundamental para la auditoría. A continuación, cree una lista de datos que le gustaría ver y una pista de auditoría. Pregúntale a un usuario de negocios si la información registrada puede ayudarte a lidiar con las preguntas que tienes (lo que te impulsa a agregar el registro).
Lo siguiente a considerar es dónde debe ir el código de registro (¿hay un punto central? ¿Utiliza AOP para agregarlo?), Y dónde debe registrarse el seguimiento de auditoría. Hay herramientas como PostSharp que le permiten entretejer el registro a través de su aplicación sin una gran cantidad de modificaciones, pero antes de hacerlo, vea si hay una manera fácil de agregar una función de registro a una ubicación común en su aplicación para 'atrapar' la información que necesita .
Una vez que tiene los datos que necesita para guardarlos en alguna parte. Aquí es donde las cosas pueden ponerse interesantes. Deberá comprender las características de rendimiento de su aplicación y los patrones de uso posibles. En muchas aplicaciones, está bien simplemente iniciar sesión en una base de datos, pero a veces esto será un problema de rendimiento. Iniciar sesión en archivos de texto está bien para algunas personas, pero ¿qué ocurre si los datos deben relacionarse con su base de datos de usuarios? En ese caso, necesita un código para procesar los archivos de registro y los datos de importación.
Antes de dedicar demasiado tiempo a la creación de cualquier código de registro vale la pena mirar NLog, Log4Net, y la Enterprise Library logging block. Estas son herramientas de propósito general que pueden proporcionar una mejor base.
Si necesita hacer cumplir las cuotas de los usuarios, es posible que desee considerar qué tan rápido se puede procesar su registro para determinar cuántas llamadas ha realizado un usuario. Idealmente, cada vez que procese una solicitud entrante, tendrá el estado actual de un usuario a mano para poder devolver una respuesta adecuada. Puede ser un esfuerzo agregar esta funcionalidad a las aplicaciones existentes y proporcionar la 'infraestructura' para soportarla.
El uso de REST, JSON, XML, SOAP, etc. realmente depende de su audiencia. ¿Van a utilizar idiomas como Ruby y Python para llamar a sus servicios, o van a usar .NET? Si van a ser principalmente.A los usuarios de NET, entonces puede que no tenga mucho sentido construir interfaces puramente REST usando JSON, ya que .NET hace que SOAP sea muy fácil. En el otro extremo de la escala, SOAP y XML apestan si está usando JavaScript en el lado del cliente. Solo recuerda que no hay una respuesta correcta sin más información sobre tus usuarios. En general, JSON no es una panacea, y XML no siempre es la peor opción.
actualización
No estoy interesado en topografía nuestros socios para que formatea/protocolos preferirían, ya que uno de los requisitos es la posibilidad de añadir nuevos socios sin la participación de TI . Me gustaría al igual que algunos consejos sobre mejores prácticas, para que lo estemos haciendo de la manera "correcta" y que puedan cumplir.
La opción más flexible es REST y XML. Esto es más ampliamente compatible ya que casi todas las plataformas tienen una pila HTTP. XML es posiblemente más flexible que JSON para representar sus datos. Empezaría aquí y trabajaría en términos de soporte, quizás agregando JSON. Sin embargo, esto no es lo que yo llamaría un enfoque centrado en el cliente. Si esta es una característica central de una plataforma, realmente debería interesarse en lo que quieren sus clientes. Oye, incluso si haces una encuesta rápida hoy, al menos tendrás un punto de partida más razonable. Si conoces a los desarrolladores de los socios, entonces podrías suponer qué preferirían de las herramientas y los idiomas que usan (incluso yendo tan lejos como para mirar sus anuncios de trabajo, podrías darte una idea de si son .NET o Java). comprar, lejos de un enfoque científico).
congrats, bro. De todas las respuestas, obtuve la mayor tracción con esta, tan breve como era. Actualmente estamos evaluando una asociación con 3Scale para manejar una tonelada de cosas que habría tenido que rodar yo mismo. No gaste el representante en un solo lugar. –
Gracias, gracias :) –