Header Ads Widget

Ticker

6/recent/ticker-posts

8 marcos de código abierto para crear API en Python

 


Python es un lenguaje altamente capacitado, preparado para manejar los rigores del desarrollo de API. Popularizado por las principales empresas y los equipos de desarrollo más pequeños, Python es aplaudido por su facilidad de uso. Sin embargo, Python debe gran parte de esa usabilidad a varias plataformas de desarrollo.

Siempre apreciamos cuando las comunidades de desarrolladores colaboran para crear herramientas más inteligentes y, afortunadamente, una gran cantidad de marcos de código abierto han aparecido y madurado. Estos marcos web, adaptados a conjuntos únicos de requisitos de proyectos, agilizan el desarrollo de API. A continuación se muestra nuestro desglose de ocho potentes marcos web de Python para ayudarlo a abordar sus esfuerzos de codificación.

1. Matraz

El marco personalizable que brinda a los desarrolladores un control total desde el primer día.

Flask es un micro-framework de Python basado en el kit de herramientas WSGI de Werkzeug y el motor de plantillas de Jinja 2. Creado por Armin Ronacher en 2010, Flask se ha actualizado 27 veces desde su debut. Sigue siendo uno de los frameworks de Python de más rápido crecimiento hasta la fecha. Los usuarios pueden unirse a una lista de correo de la comunidad, sintonizar el canal IRC de Flask o realizar contribuciones en GitHub. Pinterest, Netflix y LinkedIn, entre otros, han incorporado Flask en sus pilas de desarrollo. Flask 1.0.2 está disponible actualmente, la última versión estable lanzada en mayo de 2018.

Beneficios

  • Flask es liviano y no intrusivo, eliminando los requisitos rígidos que se encuentran en otros marcos. Los desarrolladores disfrutarán de su compatibilidad con herramientas externas y ORM.
  • Sus dependencias se crean pensando en la seguridad. Disfrute de la protección predeterminada contra ataques de inyección, controles de integridad de datos y generación segura de cookies en el lado del cliente.
  • Un servidor de desarrollo integrado elimina la necesidad de configurar recursos externos, lo que reduce los tiempos de entrega y los costos.
  • Flask es compatible con Python 3.4 y versiones posteriores, mientras que también es compatible con Python 2.7 y PyPy. Los desarrolladores pueden usar libremente su versión preferida, lo que simplifica la creación de API.
  • La documentación es rica en ejemplos y está muy extendida, con una amplia colección de casos de uso y código de muestra descrito.

Inconvenientes

  • Las empresas pueden preferir otros marcos para aplicaciones MVC más grandes, ya que Flask no se envía con módulos y herramientas de arranque integrales.
  • Aunque Flask es muy flexible, el tiempo de personalización inicial puede retrasar el desarrollo y la producción.

2. Django

Un actor de poder integral mediante el cual se miden otros marcos sólidos.

El nombre familiar en el desarrollo de Python, Django ha ganado popularidad desde su debut en 2005. Lo mantiene la Django Software Foundation gracias a las contribuciones de individuos y corporaciones, muchas de las cuales dependen de Django para su desarrollo. Django tiene una comunidad bulliciosa, con más de 11,600 miembros en todo el mundo . Django tiene más de 191,000 preguntas etiquetadas en Stack Overflow. Los desarrolladores pueden participar en listas de correo, fuentes RSS, un canal de IRC y más. Spotify, YouTube e Instagram confían en Django para la gestión de aplicaciones y datos. Este grupo crece continuamente junto con Django, que ha lanzado más de 214 actualizaciones desde su creación.

Beneficios

  • El tamaño de la comunidad de Django es asombroso: tanto los recién llegados como los veteranos pueden esperar mucha orientación incluso para los casos de uso más detallados.
  • Las herramientas de plantilla, enrutamiento, formularios, autenticación y administración se incluyen de forma predeterminada. Los desarrolladores no tendrán que buscar herramientas externas, especialmente cuando los componentes de terceros pueden enfrentar problemas de compatibilidad.
  • Las construcciones simples para usuarios, bucles y condicionales permiten a los desarrolladores escribir rápidamente numerosas líneas de código nuevo.
  • La integración de Django con MongoDB, DynamoDB, SQLite y más lo convierten en una potencia para administrar inmensos conjuntos de datos. Para aplicaciones con un gran número de usuarios, esto es invaluable.
  • Un marco maduro y optimizado, Django es extremadamente rápido y confiable desde el primer momento.

Inconvenientes

  • Django separa los nuevos proyectos en componentes individuales, utilizando archivos de plantilla vacíos. Debido a que Django presenta a los nuevos usuarios con menos código de ejemplo, aprender es más complicado.
  • Los nuevos programadores pueden tener problemas al empaquetar componentes juntos, ya que no se proporciona una guía explícita.
  • La gran cantidad de herramientas predeterminadas dificulta que los recién llegados se pongan al día.

3. Pirámide

El marco híbrido que ofrece lo mejor de ambos mundos, grande o pequeño.

Con el objetivo de no ser ni demasiado grande ni demasiado pequeño, Pyramid busca cerrar la brecha entre marcos como Django y Flask. Se desarrolló como parte del Proyecto Pylons y se lanzó en 2008. Pyramid se inspira tanto en Django como en otros marcos más pequeños. Los desarrolladores pueden seguir el progreso de Pyramid en las redes sociales a través de Twitter y un grupo de Google. Los desarrolladores de Pyramid a menudo participan en eventos públicos. Finalmente, los desarrolladores interesados ​​en aprender más sobre el marco pueden unirse al canal oficial de IRC. Mozilla y Yelp son empresas notables que dependen de la pirámide para su desarrollo. La versión actual de Pyramid es 1.10, la décima actualización desde su debut.

Beneficios

  • A diferencia de Django, Pyramid proporciona una amplia guía para la agrupación de archivos, empaquetando así sus proyectos de una manera mucho más infalible. Esto proporciona una red de seguridad, especialmente para los recién llegados.
  • Pyramid crea una plantilla de proyecto bastante considerable, pero proporciona un amplio código de inicio y esqueletos para simplificar el desarrollo.
  • La herramienta de arranque de Pyramid pcreate, es compatible con numerosas plantillas basadas en SQLAlchemy y ZODB. Esta flexibilidad aumenta con PyPi, que es compatible con Google App Engine, Jinja 2 y jQuery Mobile.
  • Pyramid permite a los desarrolladores escalar aplicaciones rápidamente, con un sólido soporte de API, mapeo de URL y gran extensibilidad a través de complementos.
  • Los administradores de contexto agrupan las solicitudes y las escrituras en grupos lógicos, lo que resulta útil para períodos de alto tráfico.
  • Pyramid admite todas las versiones compatibles de Python.

Inconvenientes

  • La sintaxis de la plantilla Chameleon de Pyramid puede ser relativamente complicada. La falta de la construcción for-else da como resultado cadenas detalladas, también cierto para la representación de formularios.
  • La estructuración XHTML, aunque puede ser analizada por los editores, puede parecer extraña y compleja para quienes migran desde Django.

4. Halcón

Un marco de microservicios de alto rendimiento centrado en el control de calidad.

Falcon se creó como un marco completo y está optimizado para microservicios. Con el cumplimiento de WSGI, está hecho para ser compatible con numerosos servidores y plataformas. Kurt Griffiths creó Falcon en 2013 y es uno de los principales contribuyentes. Sin embargo, una comunidad dedicada proporciona una amplia información. Los recién llegados al marco Falcon pueden seguirlo con charlas, podcasts y publicaciones en blogs. También hay salas de chat en Gitter para desarrolladores y usuarios. Empresas como LinkedIn y Rackspace utilizan el marco para varios proyectos. Documentado en GitHub, Falcon ha enviado 43 actualizaciones desde su lanzamiento, actualmente en la versión 1.4.1.

Beneficios

  • Falcon es independiente del sistema operativo y se centra en ejecutarse de manera eficiente en cualquier hardware dado, con flexibilidad de marco.
  • El marco se asocia armoniosamente con Python 2.6, 2.7 y 3.4+.
  • Los controladores HTTP REST proporcionan resoluciones de solicitud y transiciones de estado sencillas.
  • El desarrollo de código fuente se prueba ampliamente para detectar errores. Falcon usa solo dos dependencias de terceros.
  • Con su configuración predeterminada, Falcon puede realizar hasta 19 veces más solicitudes por segundo que Django en condiciones idénticas.

Inconvenientes

  • Falcon no es adecuado para servir páginas HTML.
  • Carece de un servidor web integrado.
  • Aunque la documentación y los tutoriales son abundantes, generalmente son menos completos que los de marcos como Flask.

5. Eva

Un marco de tamaño mediano construido para manejar todo menos el fregadero de la cocina.

Eve , un marco de API REST centrado en servicios web, se basa en Flask y Cerberus. Eve está construido fundamentalmente con la implementación de CRUD y hecho para ser más humanista. El marco está escrito y mantenido por Nicola Iarocci, al mismo tiempo que las contribuciones de la comunidad. Fue lanzado a principios de 2013. El proyecto mantiene una presencia activa en GitHub con 138 colaboradores. Los desarrolladores también pueden unirse a una lista de correo para mantenerse informados, junto con el IRC de Eve, los Grupos de Google y Stack Overflow. Desde su lanzamiento, Eve se ha actualizado 33 veces y su versión actual es 0.8.2.

Beneficios

  • Eve enfatiza el cumplimiento de REST y CRUD de rango completo al tiempo que proporciona los retrocesos necesarios de forma predeterminada.
  • Las colecciones de bases de datos conocidas se convierten automáticamente en puntos finales de recursos. Estos puntos finales se pueden personalizar para cada caso de uso y pueden incluir campos adicionales sin la entrada del cliente.
  • Eve admite puntos finales de sub-recursos y puntos finales de varios elementos para una mayor flexibilidad de URI.
  • MongoDB es compatible de forma nativa y las extensiones de la comunidad brindan compatibilidad con SQL, Elasticsearch y Neo4js.
  • El filtrado, la clasificación, la paginación de recursos y HATEOAS son compatibles de forma predeterminada.

Inconvenientes

  • Eve es generalmente mejor para proyectos pequeños a medianos, ya que los proyectos grandes pueden ser difíciles de administrar a escala.
  • Debido a que el marco es relativamente minimalista, puede llevar algún tiempo encontrar las extensiones adecuadas y las configuraciones óptimas.

6. CherryPy

Un enfoque orientado a objetos construido con potencial de configuración granular.

CherryPy , otro marco web minimalista, está orientado a objetos y es compatible con HTTP / 1.1, CherryPy tiene como objetivo promover un desarrollo rápido al tiempo que reduce las bases de código fuente en general. Fue construido por Remi Delon y lanzado en 2002. Ahora es mantenido por el equipo de CherryPy y la comunidad de desarrollo. CherryPy tiene una lista de correo. Los desarrolladores también pueden unirse al grupo de Google del marco, al portal Gitter o al canal IRC. El equipo de CherryPy está aceptando confirmaciones y más contribuciones en GitHub. Netflix y Hulu usan CherryPy como un componente básico para proyectos seleccionados. La versión actual es 18.1.0, la versión número 120 en el ciclo de vida de desarrollo.

Beneficios

  • La programación orientada a objetos reduce el tiempo de desarrollo y reduce el tamaño de la base de código.
  • CherryPy tiene herramientas integradas para almacenamiento en caché, sesiones, autenticación y contenido estático.
  • Cada componente y recurso es intercambiable, lo que permite a los desarrolladores personalizarlos como mejor les parezca.
  • Para los desarrolladores que trabajan con múltiples aplicaciones, cada aplicación se puede configurar de forma independiente.
  • Los métodos de actualización de una sola línea permiten configuraciones de servidores globales con fusiones simples.
  • CherryPy puede servir tanto contenido dinámico dependiente del usuario como recursos estáticos.
  • Soporte integrado para codificación y decodificación JSON, tanto para solicitudes como para respuestas.

Inconvenientes

  • Aunque se incorporan algunas funciones, como las sesiones, es posible que no estén habilitadas de forma predeterminada. Los desarrolladores deben recordar habilitar manualmente estas configuraciones.
  • Si los controladores de página no se escriben correctamente, los usuarios con permisos podrían acceder a cualquier archivo almacenado en el servidor.

7. Botella

Una estructura microscópica e independiente con amplia versatilidad.

Similar a Flask, Bottle es un micro-framework WSGI para el desarrollo de API. Único en Bottle es su módulo de archivo único y no tiene dependencias aparte de la biblioteca estándar de Python. Está escrito y mantenido por Marcel Hellkamp, ​​publicado originalmente en 2009. Las contribuciones de la comunidad se examinan y aceptan a través de GitHub. Bottle tiene un blog y una lista de correo, y los desarrolladores interesados ​​también pueden seguirlo en Twitter. Un chat de freenode proporciona un foro adicional para la discusión. Netflix ha utilizado la botella para manejar algunas funciones básicas. La versión actual de Bottle es 0.12.16 y se ha actualizado 73 veces desde su lanzamiento.

Beneficios

  • Bottle es extremadamente liviano y configurable, con soporte para plantillas mako, Jinja 2 y cheetah.
  • Un servidor de desarrollo HTTP integrado admite paste, fapws3, bjoern, gae, cherrypy y otros servidores WSGI.
  • Cuentas de enrutamiento inteligente para URL más limpias, personalizables y lógicas para solicitudes y llamadas a funciones.
  • Las bibliotecas externas son innecesarias, lo que simplifica el desarrollo y reduce los problemas multiplataforma.

Inconvenientes

  • Es posible que se necesite una ruta absoluta además de la ruta de búsqueda de la plantilla. En algunos casos, es posible que Bottle no pueda ubicar sus plantillas.
  • Los desarrolladores deben agregar patrones a los marcadores de posición para tener en cuenta las barras inclinadas dentro de su sintaxis.
  • Bottle puede perder algunos datos en tránsito cuando opera localmente detrás de un proxy inverso o balanceador de carga. Es posible que se requiera una solución alternativa para garantizar la integridad del encabezado para el cliente.

8. Tornado

Un marco robusto construido para manejar un alto tráfico con un mínimo de gastos generales.

Tornado , que es un marco web y una biblioteca de redes asincrónicas, está diseñado para admitir numerosas conexiones simultáneas. Fue desarrollado originalmente en FriendFeed y debutó en 2010. Tornado es mantenido principalmente por Ben Darnell junto con las contribuciones de la comunidad de GitHub. Los desarrolladores pueden rastrear noticias y actualizaciones a través de la lista de correo y dos grupos de Google separados. Tornado también afirma tener un seguimiento de Stack Overflow y mantiene una wiki en GitHub. Tornado está actualmente actualizado a la versión 6.0, habiendo enviado 56 actualizaciones desde su lanzamiento.

Beneficios

  • Con una E / S de red sin bloqueo, Tornado puede admitir decenas de miles de conexiones simultáneas, adecuadas para encuestas largas, WebSockets y más.
  • Admite el inicio de sesión de terceros junto con OpenID, OAuth y Graph API (Google, Facebook, Twitter).
  • Tornado puede recargar automáticamente las conexiones del servidor para detectar y aplicar cambios en el archivo de origen.
  • Funciona con servidores y marcos web WSGI.

Inconvenientes

  • Debido a que Tornado es asincrónico, ejecutar una aplicación WSGI con su WSGIContaineres menos escalable que usar esa aplicación con un servidor WSGI (por ejemplo, gunicorn y uwsgi).
  • Debido a su enfoque relativamente novedoso de la creación de redes, puede haber una curva de aprendizaje asociada con Tornado.
  • Sin soporte ORM.

Publicar un comentario

0 Comentarios