2010-06-20 12 views
8

Hola, estoy buscando escribir una aplicación de tareas multiplataforma para técnicos. Quiero manejar tantas plataformas como pueda (web, shell, escritorio) y, por lo tanto, he decidido comenzar con un servidor/API.Marco de Ruby para escribir una API?

Quiero escribirlo en Ruby, sin embargo, creo que Rails es un poco pesado para esto, aunque haría el trabajo. Sinatra tampoco parece muy adecuado para la tarea.

Todo lo que el servidor/API haría sería traducir solicitudes simples a las consultas de la Base de datos, y en una etapa posterior algunas autenticaciones y autorizaciones.

Así que, básicamente quiero saber:

1) ¿Debo usar una API REST o SOAP API?

2) ¿Hay un marco para esto? ¿O cuál es el marco más cercano disponible?

Respuesta

8

Para los aventureros, también hay un proyecto menos conocido llamado grape. Es una aplicación basada en rack, similar a Sinatra, pero solo tiene el propósito de escribir API. No creo que todavía esté lo suficientemente maduro como para ser utilizado en proyectos serios, pero aún así es interesante saberlo.

5

1) REST, SOAP es un sistema terrible y su soporte en Ruby es bastante deficiente. REST, por otro lado, es básicamente el valor predeterminado de ruby ​​y requiere muy poco esfuerzo de uso, especialmente si está utilizando REST/JSON.

2) Sinatra y los rieles son básicamente sus opciones. Todo se reduce a la complejidad de esta aplicación. Sinatra probablemente pueda encargarse de la tarea, pero Rails hace gran parte del trabajo por usted a expensas de la hinchazón. Ya utilizará parte de la hinchazón de los rieles si usa ActiveRecord para la base de datos. Cuando la autenticación y/o los roles entran en juego, Rails tiene soluciones maduras para ambos. Sin información adicional, me inclinaría hacia Rails ya que hace gran parte del trabajo por usted y, cuando se escribe correctamente, puede ser bastante rápido.

+2

Me hincharé de dolor casi cualquier día. – thomasfedb

+0

Los servidores SOAP de hecho no tienen un buen soporte en Ruby, sin embargo, ni eso ni que no le importe la seguridad tipográfica hacen de SOAP un "terrible sistema"; si es relevante depende de lo que estás construyendo. –

+0

@thomasfedb hinchazón no significa necesariamente menos dolor .. – Pithikos

1

En realidad, SOAP es muy MUY fácil de implementar con AWS. Al mismo tiempo, API REST también es muy fácil de implementar. He escrito un par de API diferentes y paralelas (JSON, XML y formato personalizado) con rieles. Estoy seguro de que el rendimiento de la pila del framework no será tu cuello de botella, así que no te preocupes por preocuparte por el rendimiento todavía. Su primer cuello de botella será, de todos modos, base de datos y tal vez solicitudes por segundo.

En general, le sugiero que vaya con Rails, tiene mucho trabajo para usted.

+2

El último compromiso con AWS fue hace más de un año, por lo que dudaría en confiar en él de la caja. –

+0

No lo he investigado mucho, pero probablemente existan cosas similares, incluso si no están incorporadas en los rieles. –

+0

AWS se construyó en rieles, pero después del advenimiento de REST, el núcleo del tipo de JABÓN muerto con fuego. Es posible que me sienta amargado después de haber perdido varias semanas de mi vida lidiando con problemas de SOAP de rubí mal implementados. –

1

Dado que este hilo viejo todavía aparece en las búsquedas de Google relacionadas, debería incluir mi recomendación altamente sesgada (como coautora y usuaria) para Hoodoo. A diferencia de otras ofertas, Hoodoo incluye un API specification que dice cómo deben hacerse las llamadas API y cómo deben responder; impone una coherencia a través de su diseño que los clientes de llamadas apreciarán. Si puede llamar a una API, puede llamarlos a todos. Hoodoo implementa una gran cantidad de repeticiones para que pueda enfocarse en un código de servicio significativo.

Hemos estado utilizando los servicios de Hoodoo durante más de dos años con gran éxito en Loyalty New Zealand, que ejecuta el programa de lealtad más grande del país. Nuestra plataforma de microservicio basada en Hoodoo maneja el 100% de las transacciones de nuestros clientes.

Hoodoo tiene cobertura de las pruebas y la documentación rspec rdoc 100% de cobertura no trivial 100%. Como verá en los enlaces de arriba, ¡hay mucho allí!

Hoodoo es Rack application, por lo que funciona con cualquier servidor web compatible con Rack. Sin embargo, nuestro mecanismo de implementación preferido es un acuerdo de escalabilidad indefinidamente horizontal basado en un HTTP-over-AMQP bridge y un clúster de nodos AMQP, cada uno con la misma colección de servicios, administrados dentro de los contenedores Docker y desplegados con Fleet. La autocarga del sistema se equilibra a través de los nodos de servicio a través de la cola y el desacoplamiento del procesador HTTP-> AMQP de la interfaz frente a la entrada AMQP-> HTTP en la pila de Rack reduce drásticamente la superficie de ataque del sistema. Escribimos el componente front-end en Node y para obtener más información sobre esto junto con las implementaciones de Node de otras partes del concepto de framework, consulte el Alchemy Framework. Los servicios Alchemy Node y Hoodoo Ruby pueden coexistir felizmente en la misma red.

Cuestiones relacionadas