-
- Notifications
You must be signed in to change notification settings - Fork 50
Home
Welcome to the SQL-APIConsumer wiki!
CREATE DATABASE TestDB; GO
USE TestDB GO sp_configure 'clr enabled',1 RECONFIGURE GO
ALTER DATABASE TESTDB SET TRUSTWORTHY ON GO
CREATE ASSEMBLY [System.Runtime.Serialization] AUTHORIZATION dbo FROM N'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Runtime.Serialization.dll' WITH PERMISSION_SET = UNSAFE--external_access GO
CREATE ASSEMBLY [Newtonsoft.Json] AUTHORIZATION dbo FROM N'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Newtonsoft.Json.dll' WITH PERMISSION_SET = UNSAFE go
CREATE ASSEMBLY [API_Consumer] AUTHORIZATION dbo FROM N'C:\CLR\API_Consumer.dll' WITH PERMISSION_SET = UNSAFE
GO
PRINT N'Creating [dbo].[APICaller_GET_Json]...'; GO CREATE PROCEDURE [dbo].[APICaller_GET_Json] @URL NVARCHAR (MAX) NULL AS EXTERNAL NAME [API_Consumer].[StoredProcedures].[APICaller_GET_Json]
-- How to consume GET API -- How to show Json results.
DECLARE @RoutingNumber AS VARCHAR(50) = '122242597'
--Public API: routingnumbers.info DECLARE @Url VARCHAR(200) = CONCAT('https://www.routingnumbers.info/api/name.json?','rn=',@RoutingNumber)
DECLARE @Results AS TABLE ( Context varchar(max) )
DECLARE @Result AS VARCHAR(MAX)
INSERT INTO @Results EXEC [dbo].[APICaller_GET_Json] @Url
--Result: Row per value
SELECT B.* FROM ( SELECT Context from @Results )tb OUTER APPLY OPENJSON (context) B
--Result: column per value. SELECT [name] ,[rn] ,[message] ,[code] FROM ( SELECT Context from @Results )tb OUTER APPLY OPENJSON (context) WITH ( [name] VARCHAR(20) '$.name' , [rn] VARCHAR(20) '$.rn' , [message] VARCHAR(20) '$.message' , [code] INT '$.code' );
EXEC [dbo].APICaller_POST @URL = ' http://localhost:5000/api/auth/login' , @Body = '{"username": "geraldo","password": "password"}' EXEC [dbo].APICaller_GETAuth @URL = 'http://localhost:5000/api/values' , @Token = 'Bearer aeyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiIxIiwidW5pcXVlX25hbWUiOiJnZXJhbGRvIiwibmJmIjoxNTM4MTA3NDkxLCJleHAiOjE1MzgxOTM4OTEsImlhdCI6MTUzODEwNzQ5MX0.j9kX5KXJP6yHBJZZK07tNQayyUkuQf8CtoDDDwdPISZy0eb9RQvnooB3oMND54-5Yzv5LMO9nuM69t2PJh5iXw'