Ответ при вызове API, например, из формы, передается в поле Response из SELECT 1.
Туда можно передать полностью входную переменную @response без обработки, или результаты парсинга переменной @response в доступном для понимания виде.
CREATE PROCEDURE [dbo].[api_metrikaMonth_request]
@parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2)
@username nvarchar(32) -- текущий пользователь.
AS
BEGIN
declare @metrikaID nvarchar(256)
set @metrikaID = '53312170' -- Falcon
--set @metrikaID = '60713749' -- DEMO
declare @date1 nvarchar(256) = convert(nvarchar(10), dateadd(day, -30, getdate()), 120) --2020-04-26
declare @date2 nvarchar(256) = convert(nvarchar(10), getdate(), 120)
declare @token nvarchar(256) = 'token...'
declare @url nvarchar(512) = 'https://api-metrika.yandex.net/stat/v1/data/bytime?'
+ 'id='+@metrikaID
+ '&preset=sources_summary'
+ '&group=day'
+ '&metrics=ym:s:users,ym:s:visits,ym:s:manPercentage,ym:s:womanPercentage' +
+ '&date1=' + @date1 --2020-04-26
+ '&date2=' + @date2 -- 2020-04-26
-- SELECT 1 Msg, Result, Url (адрес, куда будет идти запрос)
select '' Msg, 1 Result, @url Url
-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
-- select 'Content-type' name, 'application/json' value, 'header' [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
-- union
-- select 'Accept' name, 'application/json' value, 'header' [type]
--union
select 'Authorization' name, 'OAuth '+ @token value, 'header' [type]
END
CREATE PROCEDURE [dbo].[api_metrikaMonth_response]
@response nvarchar(max),
@parameters ExtendedDictionaryParameter READONLY, -- входящие параметры для внутренней обработки (используйте Key, Value2 - те же что и на request)
@username nvarchar(32)
AS
BEGIN
-- SELECT 1
select '' Msg, 1 Result, @response Response
-- SELECT 2 Внешние действия
END
DECLARE @reqRes NVARCHAR(MAX) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = LOWER(N'RequestResult')),N'')
DECLARE @reqMsg NVARCHAR(MAX) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = LOWER(N'RequestMsg' )),N'')
declare @apiErrorStatus nvarchar(max) = (select value2 from @parameters where [key]='r_apiErrorStatus')
declare @apiErrorInfo nvarchar(max) = (select value2 from @parameters where [key]='r_apiErrorInfo')
select 'apirequest' type, 'checkContragent' code, 'clientID' p1_name, cast(@clientID as nvarchar(max)) p1_value
Работа с XML в SQL Server
Онлайн редакторы для XML и JSON
Инструменты позволяют скопировать большой текст и просматривать через дерево элементов.