c# - net - ¿Beneficios de usar NancyFx?
rest api asp mvc (2)
Descargo de responsabilidad: no soy partidario de NancyFx :)
Estoy en el proceso de evaluar si debo ir con NancyFx o con ASP.NET Web API para la parte REST de un proyecto.
Aparte de la simplicidad y la expresividad (que tienen un valor en sí mismas, creo) ya mencionadas por GlennFerrieLive, creo que he captado otro par de cosas bonitas:
Es fácil realizar operaciones antes y después de cualquier procesamiento de solicitud API, de una manera orientada a aspectos , por así decirlo.
De forma predeterminada, el marco se ocupa del tipo devuelto aceptado, por lo que convertirá correctamente la salida en JSON, XML, ...
Las solicitudes de implementación de Lambdas no devuelven los datos rellenos reales, sino que siguen siendo en forma de consulta. Después de eso, aún es posible agregar fácilmente el filtrado, la clasificación y otras operaciones antes de ejecutar realmente la consulta, presionar el DB y devolver los datos reales.
De alguna manera han envuelto el HttpRequest y han puesto a disposición del desarrollador un equivalente de eso, con la diferencia de que este nuevo objeto se inyecta y, por supuesto, puede sustituirlo por un simulacro ... Por lo tanto, pruebas más fáciles y limpias.
Quizás algunos de esos (¿todos?) Ya están disponibles en ASP.NET Web API y con la misma facilidad, no estoy seguro.
HTH
Existe otro marco para realizar llamadas HTTP llamado NancyFx. Mi pregunta es cuáles son los beneficios de usarlo. Eché un vistazo rápido a la documentación:
https://github.com/NancyFx/Nancy/wiki/Documentation
y parece que no hay una característica sobresaliente debido a la cual me gustaría usar esto. ¿Cuáles son los beneficios de usarlo en WebHttp?
PD: Sigo leyendo acerca de una extraña frase que sigue repitiendo una y otra vez "super-duper-happy-path". ¿Hay algo más aparte de este "super-duper-happy-path"? ¿Alguna característica real implementada?
Parece que ofrece un enfoque diferente para definir "rutas" (en el sentido MVC) utilizando lambdas para identificar rutas relativas, argumentos y la implementación de la respuesta.
En última instancia, el beneficio clave del marco es su expresividad. En ASP.NET MVC, el RouteTable está en global.asax y la implementación está en el Control. Parece que en NancyFx, este es el patrón que prevalece:
Action["/path"] = args => { return your_implementation_here; }
Ejemplo de implementación:
Get["/products"] = id => { return GetRepository().Products.Single( q => q.Id == id); };
Explicación: Un HTTP Obtenga el punto final relativo ''/ products'' con un argumento de ''Id'' devolverá un único producto del repositorio donde el argumento Id coincida con el Id del producto.
Expresivo y conciso.