Diferència entre revisions de la pàgina «Web Services amb Pyramid i Cornice»
Salta a la navegació
Salta a la cerca
(Es crea la pàgina amb «== Web services: teoria == ... Un web service vé a ser un servei al que se li poden fer consultes a través del protocol HTTP o HTTPS. No té perquè respondre HTML, i…».) |
|||
Línia 10: | Línia 10: | ||
Package: Cornice | Package: Cornice | ||
− | Abans de començar cal crear un nou projecte amb Pyramid ([[Buildout]]) i cal afegir la '''llibreria cornice''' al '''buildout.cfg'''. | + | === Creant un nou projecte === |
+ | Abans de començar cal crear un nou projecte amb Pyramid ([[Buildout]]) i cal afegir la '''llibreria cornice''' al '''buildout.cfg'''. Teniu 2 opcions: | ||
+ | # Instal·lar el cornice al vostre virtualenv, amb el què es crearà una nova plantilla que podeu utilitzar creant un scaffold per cornice: <pre>(env) $ pcreate -t cornice nomprojecte</pre> | ||
+ | # Fer un scaffold normal de Pyramid i modificar: | ||
+ | #* __init__.py , cal afegir:<pre> config.include("cornice")</pre> | ||
+ | #* setup.py , als "requires" cal afegir "cornice", "PasteScript" i "waitress". | ||
+ | <br> | ||
− | * | + | === Desenvolupant el web service === |
− | *: | + | Anem al lío: |
+ | * Recorda que treballarem amb JSON: [http://en.wikipedia.org/wiki/JSON wikipedia] i [http://www.json.org/ json.org]. | ||
+ | *: Altres tecnologies: Java utilitza XMLRPC, i Microsfot SOAP. | ||
* Doc.oficial: http://packages.python.org/cornice/ | * Doc.oficial: http://packages.python.org/cornice/ | ||
* Interessant i essencial el "Quick Start for people in a hurry" (emmagatzema objectes JSON), però hi ha un error: on diu _VALUES.set(...) en realitat ha de ser:<pre>_VALUES[key] = json.loads(request.body)</pre> | * Interessant i essencial el "Quick Start for people in a hurry" (emmagatzema objectes JSON), però hi ha un error: on diu _VALUES.set(...) en realitat ha de ser:<pre>_VALUES[key] = json.loads(request.body)</pre> |
Revisió del 09:21, 8 maig 2013
Contingut
Web services: teoria
...
Un web service vé a ser un servei al que se li poden fer consultes a través del protocol HTTP o HTTPS.
No té perquè respondre HTML, i el més habitual és que no ho faci, ja que ens complicarà el parsejar les dades i introduïr-les al nostre programa. És més habitual utilitzar JSON (o XMLRPC o SOAP).
Web Services a Pyramid: llibreria Cornice
Package: Cornice
Creant un nou projecte
Abans de començar cal crear un nou projecte amb Pyramid (Buildout) i cal afegir la llibreria cornice al buildout.cfg. Teniu 2 opcions:
- Instal·lar el cornice al vostre virtualenv, amb el què es crearà una nova plantilla que podeu utilitzar creant un scaffold per cornice:
(env) $ pcreate -t cornice nomprojecte
- Fer un scaffold normal de Pyramid i modificar:
- __init__.py , cal afegir:
config.include("cornice")
- setup.py , als "requires" cal afegir "cornice", "PasteScript" i "waitress".
- __init__.py , cal afegir:
Desenvolupant el web service
Anem al lío:
- Recorda que treballarem amb JSON: wikipedia i json.org.
- Altres tecnologies: Java utilitza XMLRPC, i Microsfot SOAP.
- Doc.oficial: http://packages.python.org/cornice/
- Interessant i essencial el "Quick Start for people in a hurry" (emmagatzema objectes JSON), però hi ha un error: on diu _VALUES.set(...) en realitat ha de ser:
_VALUES[key] = json.loads(request.body)
- També necessitarem CURL (amb apt-get). Consulta el man o també online: http://curl.haxx.se/docs/manpage.htm
- OJU amb JSON i curl, les cometes han de ser simples per tot el objecte JSON i dobles pels elements:
$ curl http://el/meu/servei -d '{"nom1":"valor1",...}'
- Més opcions curl: -X {GET|POST|PUT}
- OJU amb JSON i curl, les cometes han de ser simples per tot el objecte JSON i dobles pels elements:
- Llibreria PycURL: http://pycurl.sourceforge.net/ ens permet fer crides des de python amb cURL.
- Oju: s'ha d'instal·lar al sistema (o al virtualenv) i cal afegir prèviament els paquets: python2.?-dev i libcurl4-gnutls-dev
- Després ja es pot instal·lar amb
$ easy_install pycurl
- Millor que pycurl és urllib que ja està al sistema i per fer el fet anirem més ràpids
- ...