Back to Collection Items
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
-- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Authorization', 'API-Key {{api_key}}'
DECLARE @sbResponseBody int
-- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT
EXEC sp_OAMethod @http, 'QuickGetSb', @success OUT, 'https://api.pandadoc.com/public/v1/documents/folders', @sbResponseBody
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbResponseBody
RETURN
END
DECLARE @jResp int
-- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT
EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody
EXEC sp_OASetProperty @jResp, 'EmitCompact', 0
PRINT 'Response Body:'
EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
PRINT @sTmp0
DECLARE @respStatusCode int
EXEC sp_OAGetProperty @http, 'LastStatus', @respStatusCode OUT
PRINT 'Response Status Code = ' + @respStatusCode
IF @respStatusCode >= 400
BEGIN
PRINT 'Response Header:'
EXEC sp_OAGetProperty @http, 'LastHeader', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Failed.'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
RETURN
END
-- Sample JSON response:
-- (Sample code for parsing the JSON response is shown below)
-- {
-- "count": 0,
-- "next": null,
-- "previous": null,
-- "results": [
-- ]
-- }
-- Sample code for parsing the JSON response...
-- Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
DECLARE @count int
EXEC sp_OAMethod @jResp, 'IntOf', @count OUT, 'count'
DECLARE @v_next nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @v_next OUT, 'next'
DECLARE @previous nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @previous OUT, 'previous'
DECLARE @i int
SELECT @i = 0
DECLARE @count_i int
EXEC sp_OAMethod @jResp, 'SizeOfArray', @count_i OUT, 'results'
WHILE @i < @count_i
BEGIN
EXEC sp_OASetProperty @jResp, 'I', @i
SELECT @i = @i + 1
END
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
END
GO
Curl Command
curl -X GET
-H "Authorization: Bearer {{access_token}}"
-H "Authorization: API-Key {{api_key}}"
https://api.pandadoc.com/public/v1/documents/folders
Postman Collection Item JSON
{
"name": "List Documents Folders",
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{access_token}}",
"disabled": true
},
{
"key": "Authorization",
"type": "text",
"value": "API-Key {{api_key}}"
}
],
"url": {
"raw": "https://api.pandadoc.com/public/v1/documents/folders",
"protocol": "https",
"host": [
"api",
"pandadoc",
"com"
],
"path": [
"public",
"v1",
"documents",
"folders"
]
},
"description": "For details go to https://developers.pandadoc.com/reference#list-documents-folders"
},
"response": [
{
"name": "Empty Response",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{access_token}}"
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8",
"description": "The mime type of this content"
}
],
"url": {
"raw": "https://api.pandadoc.com/public/v1/templates",
"protocol": "https",
"host": [
"api",
"pandadoc",
"com"
],
"path": [
"public",
"v1",
"templates"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "javascript",
"header": [
{
"key": "Allow",
"value": "GET, DELETE, HEAD, OPTIONS",
"name": "Allow",
"description": "Valid actions for a specified resource. To be used for a 405 Method not allowed"
},
{
"key": "Cache-Control",
"value": "no-cache",
"name": "Cache-Control",
"description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"
},
{
"key": "Connection",
"value": "keep-alive",
"name": "Connection",
"description": "Options that are desired for the connection"
},
{
"key": "Content-Encoding",
"value": "gzip",
"name": "Content-Encoding",
"description": "The type of encoding used on the data."
},
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Mon, 22 Aug 2016 17:01:13 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Expires",
"value": "Mon, 22 Aug 2016 17:01:12 GMT",
"name": "Expires",
"description": "Gives the date/time after which the response is considered stale"
},
{
"key": "Pragma",
"value": "no-cache",
"name": "Pragma",
"description": "Implementation-specific headers that may have various effects anywhere along the request-response chain."
},
{
"key": "Server",
"value": "nginx/1.4.6 (Ubuntu)",
"name": "Server",
"description": "A name for the server"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [
],
"body": "{\"count\": 0, \"next\": null, \"previous\": null, \"results\": []}"
}
]
}