{"id":257,"date":"2020-04-15T10:26:59","date_gmt":"2020-04-15T10:26:59","guid":{"rendered":"https:\/\/javiborras.com\/?page_id=257"},"modified":"2020-04-20T12:19:18","modified_gmt":"2020-04-20T12:19:18","slug":"que-es-postman","status":"publish","type":"post","link":"https:\/\/javiborras.com\/que-es-postman\/","title":{"rendered":"\u00bfQu\u00e9 es Postman?"},"content":{"rendered":"

\u00bfQui\u00e9n no ha sufrido el mundo de las APIs en sus huesos? Si eres desarrollador web, y sobre todo te has enfocado en desarrollar tus proyectos en arquitecturas de microservicios, seguro que te has visto en la necesidad de gestionar m\u00faltiples APIs (ya sean propias de tu sistema o integraciones con aplicaciones de terceros) que deben ser mantenidas de la manera m\u00e1s r\u00e1pida y eficiente posible.<\/p>\n

En este post vamos a introducirnos en el mundo de Postman, una herramienta que si no la conoc\u00edas, har\u00e1 del trabajo con APIs algo apasionante.<\/p>\n

\u00bfQu\u00e9 es Postman?<\/h2>\n

Postman surgi\u00f3 originariamente como una extensi\u00f3n para el navegador Google Chrome<\/strong>. A d\u00eda de hoy dispone de aplicaciones nativas para MAC y Windows y est\u00e1n trabajando en una aplicaci\u00f3n nativa para Linux (disponible en versi\u00f3n beta).<\/p>\n

Est\u00e1 compuesto por diferentes herramientas y utilidades gratuitas<\/strong>\u00a0(en la versi\u00f3n free)\u00a0que permiten realizar tareas diferentes dentro del mundo API REST<\/strong>:<\/p>\n

    \n
  1. Creaci\u00f3n de peticiones a APIs internas o de terceros.<\/li>\n
  2. Elaboraci\u00f3n de tests para validar el comportamiento de APIs.<\/li>\n
  3. Posibilidad de crear entornos de trabajo diferentes (con variables globales y locales).<\/li>\n<\/ol>\n

    Todo ello con la posibilidad de ser compartido con otros compa\u00f1eros del equipo de manera gratuita (exportaci\u00f3n de toda esta informaci\u00f3n mediante URL en formato JSON).<\/p>\n

    Adem\u00e1s,\u00a0dispone de un modo cloud colaborativo (de pago)<\/strong>\u00a0para que equipos de trabajo puedan desarrollar entre todos colecciones para APIs sincronizadas en la nube para una integraci\u00f3n m\u00e1s inmediata y sincronizada.<\/p>\n

    Entremos en materia: colecciones de APIs<\/h2>\n

    El inter\u00e9s fundamental de Postman es que lo utilicemos como una\u00a0herramienta para hacer peticiones a APIs y<\/strong>\u00a0generar\u00a0colecciones de peticiones<\/strong>\u00a0que nos permitan probarlas de una manera r\u00e1pida y sencilla.<\/p>\n

    Las colecciones son carpetas donde se almacenan las peticiones y que permiten ser estructuradas por recursos, m\u00f3dulos o como el equipo lo desee. En la siguiente imagen vemos un ejemplo de estructura de una colecci\u00f3n de prueba de uno de los proyectos desarrollados en Paradigma:\u00a0Security Hub<\/a>.<\/p>\n

    \"\"<\/a><\/article>\n

    Como vemos, se puede definir el tipo de petici\u00f3n (GET, POST, etc.), tokens de autenticaci\u00f3n, cabeceras asociadas a la petici\u00f3n, etc., todo de una manera muy sencilla.<\/p>\n

    Todas las llamadas almacenadas en nuestra colecci\u00f3n pueden ser exportadas a m\u00faltiples lenguajes haciendo clic en el apartado Generate Code que pod\u00e9is ver en la captura anterior. Os dejo un ejemplo de c\u00f3mo exporta una llamada GET para poder ser utilizada autom\u00e1ticamente desde c\u00f3digo Python:<\/p>\n

    Todas las llamadas almacenadas en nuestra colecci\u00f3n pueden ser exportadas a m\u00faltiples lenguajes haciendo clic en el apartado Generate Code que pod\u00e9is ver en la captura anterior.<\/p>\n

    \n
    \r\nimport<\/span> requests\r\nurl =<\/span> \"http:\/\/localhost:8000\/api\/customers\/\"<\/span>\r\nheaders =<\/span> {<\/span>\r\n    'content-type'<\/span>:<\/span> \"application\/json\"<\/span>,<\/span>\r\n    'cache-control'<\/span>:<\/span> \"no-cache\"<\/span>,<\/span>\r\n    'postman-token'<\/span>:<\/span> \"1432412f-9bc5-be13-a8a4-6f93e31feba4\"<\/span>\r\n    }<\/span>\r\nresponse =<\/span> requests.<\/span>request(<\/span>\"POST\"<\/span>,<\/span> url,<\/span> headers=<\/span>headers)<\/span>\r\nprint<\/span>(<\/span>response.<\/span>text)<\/span>\r\n\r\n<\/code><\/pre>\n
    \n