Получение валют от Банк России API (CBR API)

Получение данных о котировках валют по API с сайта www.cbr.ru (ЦБ РФ).

Как реализовать

Вызов внешнего действия APIRequest при сохрании формы: 

CREATE PROCEDURE [dbo].[fm_watch_valuta_saveItem]
   @username nvarchar(256), 
   @itemID int, 
   @fieldvaluta nvarchar(256) = ''
AS
BEGIN
	-- 1 SELECT (Result, Msg)
	select 1 Result, ' ' Msg
    
    select 'apirequest' type, 'valuta' code, 'valuta' p1_name, @fieldvaluta p1_value
END

API вызов (тип GET, XML): 

CREATE PROCEDURE [dbo].[api_valuta_request]
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2)
	@username nvarchar(32)  -- текущий пользователь.
AS
BEGIN	
	declare @maxDate nvarchar(10) = convert(nvarchar(10), getdate(), 103)
    declare @minDate nvarchar(10) = convert(nvarchar(10), dateadd(day, -7, getdate()), 103)
    
	declare @valuta nvarchar(128) = (select top 1 Value2 from @parameters where [Key]='valuta')
	-- SELECT 1  Msg, Result, Url (адрес, куда будет идти запрос)
	select '' Msg, 1 Result, 'http://www.cbr.ru/scripts/XML_dynamic.asp?'+
    	'date_req1='+@minDate+'&date_req2='+@maxDate+'&VAL_NM_RQ=' + @valuta  Url  -- R01235   14/03/2001

	-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
END

Обработка в JS (обратите внимание, что здесь работаем не с JSON а с XML через jQuery): 

<script>
  $(function(){
	as.formcallbacks["watch_valuta_saveItem"] = function(data, params){
		var ss = JSON.parse(data.additionalData)[0].items;
   	    var resp = $.grep(ss, function(v) {
    		return v.key == "response" 
		});
      	console.log(resp)
      	if(resp.length>0 && resp[0].value2) {
        	var el = resp[0].value2;          
          	console.log("valuta", el); 
          	var s = "";
          	$("record", el).each(function(){
              /*
              <Record Date="14.03.2001" Id="R01235">
<Nominal>1</Nominal>
<Value>28,6500</Value>
</Record>
*/	
            	s+='<div>' + $(this).attr("Date") + " - <span class='badge badge-light'>" + $("Value", this).html() + "</span></div>";	
            });
          	if(s){
            	as.sys.bootstrapAlert(
                  '<h3>'+$('.as-form-item[data-code=valuta] select option:selected').text() + ' к рублю</h3>' + s, 
                  {type: "info", delay: 1000000, icon: ' '});
              	return;
            }           	
        }  
        as.sys.bootstrapAlert("Что-то пошло не так", {type: "danger"});
	}
  });
</script>

Другие модули

Последние обновления

Вывод временной линии timeline

Визуализация 13.09.2021

Вывод диаграммы типа pie

Визуализация 13.09.2021

Вывод диаграммы вида radar

Визуализация 13.09.2021

Вывод графиков line

Визуализация 13.09.2021

Вывод гистограммы bar

Визуализация 13.09.2021

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства