Cornisa ofrece una clase de servicio que puede utilizar para definir los servicios web en Pyramid.
Cada instancia de una clase de servicio corresponde a una ruta de servidor y usted puede poner en práctica diversos métodos HTTP en el camino con decoradores simples.
Cornisa volverá automáticamente un error 405 con el derecho Permitir cabecera si se pide un método que no se implementó.
Cornisa también proporciona una directiva Esfinge que se puede utilizar para documentar sus servicios web. Las iteraciones de extensión más de servicios definidos y generarán automáticamente la documentación de servicio web.
QuickStart
Para utilizar Cornisa, empezar por incluir en su proyecto con el ** ** incluir el método de la pirámide:
& Nbsp; & nbsp; & nbsp; def principales (global_config, ** ajustes):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; config.include ("cornisa")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; config.make_wsgi_app volver ()
Más información sobre incluir al http://docs.pylonsproject.org/projects/pyramid/1.0/narr/advconfig.html#including-configuration-from-external-sources
Entonces usted puede comenzar a definir los servicios web en sus puntos de vista.
Por ejemplo, vamos a definir un servicio donde usted puede ** OBTENGA ** y ** ** POSTE un valor a ** / valores / {valor} **, donde el valor * * es un valor ASCII que representa el nombre del valor:
& Nbsp; & nbsp; & nbsp; json importación
& Nbsp; & nbsp; & nbsp; Servicio de importación cornisa
& Nbsp; & nbsp; & nbsp; valores = Servicio (name = "foo", path = '/ valores / {valor}',
description = "Cornisa Demo")
& Nbsp; & nbsp; & nbsp; _VALUES = {}
& Nbsp; & nbsp; & nbsp; @ Values.get ()
& Nbsp; & nbsp; & nbsp; get_Value def (petición):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Devuelve el valor.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; clave = request.matchdict ["valor"]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; volver _VALUES.get (clave)
& Nbsp; & nbsp; & nbsp; @ Values.post ()
& Nbsp; & nbsp; & nbsp; set_value def (petición):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Establecer el valor.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Vueltas * * Verdadero o Falso * *.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; clave = request.matchdict ["valor"]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Sugerencias de búsqueda:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; _VALUES.set (Clave, json.loads (request.body))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; excepto ValueError:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return false
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; devolver True
Por defecto, Cornisa utiliza un Json rindió
¿Qué hay de nuevo en esta versión:.
- Agregado Cruz-Origen de intercambio de recursos ( CORS) apoyo.
¿Cuál es nuevo en la versión 0.12:.
- Fix auto-definen de opiniones CABEZA de conseguir vistas
- Soporte para Colador herencia (introducido en las nuevas versiones de colador)
- Compruebe si hay errores en el cuerpo de la vista y en los validadores (sólo iba a registrar validadores previamente)
- Añadir una utilidad __version__ en cornisa / __ __ init. Py
¿Cuál es nuevo en la versión 0.11:
- la extensión esfinge ahora se proporciona por el cornice.ext. módulo sphinxext
- Añadir soporte para SPORE
- añadir una 'error_handler' opcional para ver declaraciones.
- Services.default_ {validadores, filtros} se utiliza ahora. (Fix # 75)
¿Qué hay de nuevo en la versión 0.10:.
- El uso pcreate en lugar de crear parche
- permiten agregar valores personalizados a los errores.
¿Qué hay de nuevo en la versión 0.9:
- Los valores de esquema por defecto se asume que están en el cuerpo
- rediseñado las APIs internos así que no estamos utilizando los decoradores más. La definición de servicio está ahora separado del registro de servicio en el mecanismo de enrutamiento.
- validadores de nivel de clase añadido y filtros
- añadió documentación sobre interioridades cornisa
- desaprobado el atributo service.schema. Utilice service.definitions lugar.
¿Cuál es nuevo en la versión 0.8:
- añadido soporte para HTTP las "OPCIONES" Verbos
- permite múltiples aceptar definiciones para un servicio.
- obtener docstring del validador para la generación automática doc
- no-ascii fijo problemas de documentación
- añadir una manera de ignorar algunos módulos durante el análisis con venusian.scan.
¿Qué hay de nuevo en la versión 0.7:.
- licencia de actualización a MPL 2.0
- cornice.schemas renombrado a cornice.errors
- Añadido get_view_wrapper método a la clase de servicio para apoyar las subclases de envolver los callables vista w / decoradores
- Soporte buildout añadido
- vistas clasistas añadidos y el decorador de recursos
- asegurarse de que usamos excepciones de las Pirámides. No de WebOb.
- Soporte filtros añadido
- Soporte esquema añadido
- añadido soporte XSRF JSON
- ahora los errores de estado puede ser diferente de 400.
¿Qué hay de nuevo en la versión 0.6:
- Varias correcciones en MANIFIESTO
¿Qué hay de nuevo en la versión 0.3:
- Eliminar Singleton & quot; _defined & quot; Estado de la clase de servicio; esto permite que las definiciones de servicio para cargar en más de un configurador.
Requisitos :
- Python
Comentarios que no se encuentran