Portable

.Net Portable: API de conversão de moedas com WebService do Yahoo – +100 Moedas – C#

Pode parecer tarefa fácil, mas não é. O fato é que, encontrar um bom WebService, que atenda às suas necessidades, que seja gratuito e simples de usar é algo um pouco complicado. Por isso, escrevo este post!

Recentemente eu descobri que o Yahoo possui um WebService de financias, e que o mesmo disponibiliza uma tabela para conversão de moedas, com as principais moedas do mundo. Para obter os dados do WebService é necessário, apenas, fazer um Request e pegar o Response do link abaixo:

http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote

Ele vai retornar um arquivo XML contendo os valores das moedas, e isso de forma atualizada.

Tendo isso em mãos, já é possível criar um ótima API para conversão de valores monetários. Mas eu fui além. Baseado na página web abaixo, eu criei um pequeno banco de dados que reúne as principais informações de cada moeda, como por exemplo: País, Código, Simbolo, Imagem da Bandeira do País, e o Nome da moeda.

Currency Symbols – All existing currency symbols

E eu fui ainda mais além!! A API foi projetada para funcionar offline também, pois é possível salvar a tabela de conversão e carrega-la quando não quiser baixar o da internet.

E para fechar com chave de gold: A API é multiplataforma. É uma Portable Class Library, que pode ser referenciada em programas desktop, aplicativos Windows Phone e Windows Store, Silverlight, e um outro que eu esqueci.

Ah, e sem falar que as classes foram projetadas para funcionarem em harmonia com o XAML. De fato, você pode fazer Data Binding e fazer conversões monetárias sem usar praticamente nenhum código. Um exemplo (WPF):

Yahoo Currency Demo

E graças à forma como foi projetado, a DLL garante conversão em tempo real! Isso porque a tabela de conversão é baixada e armazenada de uma única vez na memória. E o banco de dados que possue as informações de cada moeda foi incluído dentro da API.

Algo muito útil, em sistemas financeiros e demais da categoria…

Bom, segue o projeto completo da API, do aplicativo demo, e da ferramenta que eu criei para montar o base de dados:

HL.Yahoo.Currency

Espero que possa ser útil à vocês!

Grande abraço.