También necesitamos diseñar la representación o formatos que el servicio puede suministrar.
Estos podrían incluir texto sin formato, JSON, XML, etc. Estándares JSON para JavaScript
Notación de objetos y es una forma concisa de describir los datos que se van a transferir de un
servicio que se ejecuta en un servidor a un cliente que se ejecuta en un navegador. Este es el formato que
utilizará en la siguiente sección. Como parte de esto podríamos identificar una serie de operaciones
a ser proporcionado por nuestros servicios en función del tipo de método HTTP utilizado para invocar
nuestro servicio y el contenido de la URL proporcionada. Por ejemplo, para un simple
BookService esto podría ser:
• GET /book/: se utiliza para recuperar un libro para un ISBN determinado.
• GET /book/list: se utiliza para recuperar todos los libros actuales en formato JSON.
• POST /book (JSON en el cuerpo del mensaje), que admite la creación de un nuevo
libro.
• PUT /book (JSON en el cuerpo del mensaje): se utiliza para actualizar los datos almacenados en un
Libro existente.
• DELETE /book/: se usa para indicar que nos gustaría un
libro borrado de la lista de libros retenidos.
Tenga en cuenta que el parámetro isbn en las URL anteriores en realidad forma parte de la
Ruta de URL.
40.4
Marcos web de Python
Hay muchos marcos y bibliotecas disponibles en Python que permitirán
usted para crear servicios web basados en JSON; y el número de opciones disponibles
para usted puede ser abrumador. Por ejemplo, podría considerar
• Matraz,
• Django,
• Web2py y
• CherryPy, por nombrar sólo algunos.
Estos marcos y bibliotecas ofrecen diferentes conjuntos de instalaciones y niveles de
sofisticación. Por ejemplo, Django es un marco web de pila completa; eso es
destinado a desarrollar no solo servicios web sino sitios web completos.
Sin embargo, para nuestros propósitos esto es probablemente una exageración y Django Rest inter-
face es sólo una parte de una infraestructura mucho más grande. Eso no significa, por supuesto, que
no pudimos usar Django para crear nuestros servicios de librería; sin embargo hay más simples
opciones disponibles. El web2py es otro marco web de pila completa que vamos a
también descuento por la misma razón.
Por el contrario, Flask y CherryPy se consideran marcos no completos.
(aunque puede crear una aplicación web de pila completa usándolos). Esto significa que
son más ligeros y más rápidos para empezar. CherryPy era más bien original
más centrado en proporcionar una función de llamada de función remota que permitía que las funciones
40.3
Una API RESTful
473