Cornice fornisce una classe di servizio è possibile utilizzare per definire i servizi web a Pyramid.
Ogni istanza di una classe di servizio corrisponde a un percorso del server e si può implementare vari metodi HTTP sul percorso con decoratori semplici.
Cornice tornerà automaticamente un errore 405 con il diritto Consenti intestazione se è richiesto un metodo che non è stato attuato.
Cornice fornisce inoltre una direttiva Sfinge che può essere usato per documentare i servizi web. I itera estensione oltre i servizi definiti e genererà automaticamente la documentazione del servizio web.
QuickStart
Per utilizzare Cornice, avviare includendolo nel progetto con la ** ** includere metodo Pyramid:
& Nbsp; & nbsp; & nbsp; def principali (global_config, ** Impostazioni):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; config.include ("cornice")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; config.make_wsgi_app ritorno ()
Ulteriori informazioni su includere in http://docs.pylonsproject.org/projects/pyramid/1.0/narr/advconfig.html#including-configuration-from-external-sources
Poi si può iniziare a definire i servizi web in vostro punto di vista.
Ad esempio, definiamo un servizio dove si può ** GET ** e ** ** POST un valore ** / Valori / {valore} **, dove il valore * * è un valore ASCII che rappresenta il nome del valore:
& Nbsp; & nbsp; & nbsp; import json
& Nbsp; & nbsp; & nbsp; da cornice import Servizio
& Nbsp; & nbsp; & nbsp; Valori = Service (name = 'foo', percorso = '/ valori / {valore}',
description = "Cornice Demo")
& Nbsp; & nbsp; & nbsp; _VALUES = {}
& Nbsp; & nbsp; & nbsp; @ Values.get ()
& Nbsp; & nbsp; & nbsp; def Get_Value (richiesta):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Restituisce il valore.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; key = request.matchdict ['valore']
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ritorno _VALUES.get (chiave)
& Nbsp; & nbsp; & nbsp; @ Values.post ()
& Nbsp; & nbsp; & nbsp; def set_value (richiesta):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "Imposta il valore.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Restituisce * vero * o * * Falso.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "" "
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; key = request.matchdict ['valore']
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Prova:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; _VALUES.set (Chiave, json.loads (request.body))
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; tranne ValueError:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ritorno False
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; restituirà True
Per impostazione predefinita, Cornice utilizza un JSON reso
Cosa c'è di nuovo in questa versione:.
- Aggiunto Cross-Origin Resource Sharing ( CORS) di sostegno.
Cosa c'è di nuovo in versione 0.12:.
- Fix auto-definiscono di opinioni testa da GET vista
- Il supporto per Colander eredità (introdotto in nuove versioni Colander)
- Verifica errori nel corpo della vista e validatori (era il check-in solo validatori precedenza)
- Aggiungi un utility __version__ in cornice / __ init __. Py
Cosa c'è di nuovo in versione 0.11:
- l'estensione sfinge è ora fornita dal cornice.ext. Modulo sphinxext
- Aggiungi supporto per SPORE
- aggiungere un 'error_handler' facoltativa per visualizzare dichiarazioni.
- Services.default_ {validatori, filtri} è ora utilizzato. (Fix # 75)
Cosa c'è di nuovo in versione 0.10:.
- uso pcreate piuttosto che paster creare
- consentono di aggiungere valori personalizzati per gli errori.
Cosa c'è di nuovo in versione 0.9:
- I valori dello schema di default vengono considerati nel corpo
- refactoring le API interne in modo non stiamo usando più decoratori. La definizione di servizio è ora separata dalla registrazione del servizio nel meccanismo di routing.
- validatori aggiunto a livello di classe e filtri
- aggiunto documentazione su interni cornicione
- deprecato l'attributo service.schema. Utilizzare service.definitions invece.
Cosa c'è di nuovo in versione 0.8:
- ha aggiunto il supporto per HTTP "Opzioni" Verbo
- consentire più accettare le definizioni per un servizio.
- ottenere docstring del validatore per la generazione automatica doc
- problemi di documentazione non-ascii fisso
- aggiungere un modo per ignorare alcuni moduli durante la scansione con venusian.scan.
Cosa c'è di nuovo in versione 0.7:.
- licenza di aggiornamento a MPL 2.0
- cornice.schemas rinominato cornice.errors
- Aggiunto get_view_wrapper metodo della classe di servizio per sostenere sottoclassi avvolgendo il callable vista w / decoratori
- Supporto buildout aggiunto
- viste aggiunto basati su classi e il decoratore risorsa
- assicurarsi usiamo eccezioni di Pyramid. Non di Webob.
- aggiunto il supporto filtri
- Supporto schema aggiunto
- ha aggiunto il supporto json XSRF
- ora Statuto errori può essere diverso da 400.
Cosa c'è di nuovo in versione 0.6:
- Varie correzioni in MANIFESTO
Cosa c'è di nuovo in versione 0.3:
- Rimuovi Singleton & quot; _defined & quot; Stato dalla classe di servizio; questo permette definizioni di servizio di essere caricati in più di un Configurator.
Requisiti :
- Python
I commenti non trovato