Ruby On Rails: llamadas GET, POST …

Existe una variedad de librerías para hacer estas llamadas, entre las mas conocidas

Todas funcionan «casi» igual, en este tiempo descubrí una pequeña diferencia con Typhoeus, y es la mantención de los headers o encabezados, por ejemplo si tengo el header «x-amz-access», se envía de la siguiente manera:

HTTPartyX-Amz-Access
FaradayX-Amz-Access
Typhoeusx-amz-access

En algunos servicios se necesita un header en especifico, esto no quiere decir que en HTTParty y Faraday no se puedan crear funciones extras para mantener los headers.

También en la salida de Typhoeus se muestran todos los headers y el body enviado, un detalle más que se tiene que tener en cuenta con esta librería es que agrega un header extra:

user-agent: Typhoeus – https://github.com/typhoeus/typhoeus

Pero esto se puede cambiar facilmente seteando el header de la siguiente manera:

Typhoeus::Config.user_agent = ‘Custom header’

Ruby on Rails: hash binario sin formato

Usando la función hash_hmac de PHP, tenemos:

<?php
    $string = hash_hmac('sha256', 'message', 'secret', true);
    echo $string;

En este caso el ultimo valor true, establece que los datos de salida serán binarios y sin formato, teniendo la salida:

�t|P*�����!�Ɓ6����z�p�����U�

Ahora el equivalente en RoR seria:

require 'digest'

string = OpenSSL::HMAC.digest('sha256', 'secret', 'message')
puts string