Tengo curiosidad sobre el uso de Lisp para sustentar un moderno servicio web RESTful, pero dadas las numerosas variantes e implementaciones, es difícil saber por dónde empezar.Servicio web con Lisp
Estoy seguro de que hay personas usando Lisp para aplicaciones relacionadas con la web (simplemente navegando por las preguntas aquí en SO lo demuestra) pero lo que me gustaría saber es ¿Hay alguna implementación de Lisp que sea más adecuada para servicios web que otros? (compatibilidad con Unicode nativo, por ejemplo, librerías incorporadas relacionadas con la web, rendimiento, etc.)
No estoy buscando "hacks" o marcos web unicode. Estoy más interesado en lo que obtienes de la caja. No me he alineado con ningún derivado o implementación de Lisp, aunque tengo alguna experiencia menor con Common Lisp en CLISP (una calculadora polinómica genérica como parte de un curso de informática de pregrado). Sería bueno saber si hay opciones particularmente buenas para este problema, especialmente de aquellas personas que realmente han usado Lisp de esta manera.
He echado un vistazo rápido a Hunchentoot, pero parece apoyar un conjunto limitado de verbos, ¿es correcto? (GET y POST) - Necesitaría algo un poco más versátil que eso. El acceso a los encabezados de solicitud y respuesta raw en bruto es muy importante en un servicio web. Clojure/Noir parece proporcionar ese acceso. Creo que Racket también puede acceder a los encabezados sin procesar, pero sin duda requerirá más que un rápido vistazo para evaluar la naturaleza de Racket. Tal vez algunos defensores de Racket dejarán algunos comentarios. –
@MattEsch Con Hunchentoot, puede acceder al método de solicitud utilizando la función 'request-method *'. Incluso 'define-easy-handler' no se preocupa demasiado por el verbo; puedes hacer una solicitud' CASTMAGIC' si quieres, y funcionará. :) (Intente escribir un controlador simple que devuelva simplemente '(symbol-name (hunchentoot: request-method *))'.) Con Noir, hay soporte directo para los verbos HTTP estándar ('GET',' POST', 'PUT',' DELETE', 'HEAD') en el mecanismo de envío. Tanto Hunchentoot como Noir te permiten acceder a los encabezados de solicitud HTTP. –
Gracias por la aclaración. Estaba confundido sobre por qué los documentos estaban haciendo un punto de los verbos específicos GET y POST (como si fuera una especie de novedad). Gracias por aclarar eso. Iré con Hunchentoot y veré qué puedo hacer. Dejaré la pregunta abierta por ahora solo para ver si da otras respuestas. –