Back to Collection Items
#include <CkHttpW.h>
#include <CkJsonObjectW.h>
#include <CkHttpResponseW.h>
#include <CkStringBuilderW.h>
void ChilkatSample(void)
{
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkHttpW http;
bool success;
CkJsonObjectW queryParams;
queryParams.UpdateInt(L"page[size]",10);
queryParams.UpdateInt(L"page[number]",0);
queryParams.UpdateString(L"schema_version",L"v1");
http.SetRequestHeader(L"Accept",L"application/json");
CkHttpResponseW *resp = http.QuickRequestParams(L"GET",L"https://api.app.ddog-gov.com/api/v2/services/definitions",queryParams);
if (http.get_LastMethodSuccess() == false) {
wprintf(L"%s\n",http.lastErrorText());
return;
}
CkStringBuilderW sbResponseBody;
resp->GetBodySb(sbResponseBody);
CkJsonObjectW jResp;
jResp.LoadSb(sbResponseBody);
jResp.put_EmitCompact(false);
wprintf(L"Response Body:\n");
wprintf(L"%s\n",jResp.emit());
int respStatusCode = resp->get_StatusCode();
wprintf(L"Response Status Code = %d\n",respStatusCode);
if (respStatusCode >= 400) {
wprintf(L"Response Header:\n");
wprintf(L"%s\n",resp->header());
wprintf(L"Failed.\n");
delete resp;
return;
}
delete resp;
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "data": [
// {
// "attributes": {
// "meta": {
// "github-html-url": "<string>",
// "ingested-schema-version": "<string>",
// "ingestion-source": "<string>",
// "last-modified-time": "<string>",
// "origin": "<string>",
// "origin-detail": "<string>",
// "warnings": [
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// },
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// }
// ]
// },
// "schema": {
// "schema-version": "v1",
// "info": {
// "dd-service": "<string>",
// "description": "<string>",
// "display-name": "<string>",
// "service-tier": "<string>"
// },
// "contact": {
// "email": "<email>",
// "slack": "<string>"
// },
// "extensions": {
// "ut_a": {},
// "consequat_894": {}
// },
// "external-resources": [
// {
// "name": "<string>",
// "type": "url",
// "url": "<string>"
// },
// {
// "name": "<string>",
// "type": "repo",
// "url": "<string>"
// }
// ],
// "integrations": {
// "pagerduty": "<string>"
// },
// "org": {
// "application": "<string>",
// "team": "<string>"
// },
// "tags": [
// "<string>",
// "<string>"
// ]
// }
// },
// "id": "<string>",
// "type": "<string>"
// },
// {
// "attributes": {
// "meta": {
// "github-html-url": "<string>",
// "ingested-schema-version": "<string>",
// "ingestion-source": "<string>",
// "last-modified-time": "<string>",
// "origin": "<string>",
// "origin-detail": "<string>",
// "warnings": [
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// },
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// }
// ]
// },
// "schema": {
// "schema-version": "v1",
// "info": {
// "dd-service": "<string>",
// "description": "<string>",
// "display-name": "<string>",
// "service-tier": "<string>"
// },
// "contact": {
// "email": "<email>",
// "slack": "<string>"
// },
// "extensions": {
// "dolor1_9": {},
// "ea_7c": {},
// "consequat_a": {}
// },
// "external-resources": [
// {
// "name": "<string>",
// "type": "oncall",
// "url": "<string>"
// },
// {
// "name": "<string>",
// "type": "code",
// "url": "<string>"
// }
// ],
// "integrations": {
// "pagerduty": "<string>"
// },
// "org": {
// "application": "<string>",
// "team": "<string>"
// },
// "tags": [
// "<string>",
// "<string>"
// ]
// }
// },
// "id": "<string>",
// "type": "<string>"
// }
// ]
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
const wchar_t *Github_html_url = 0;
const wchar_t *Ingested_schema_version = 0;
const wchar_t *Ingestion_source = 0;
const wchar_t *Last_modified_time = 0;
const wchar_t *Origin = 0;
const wchar_t *Origin_detail = 0;
const wchar_t *Schema_version = 0;
const wchar_t *Dd_service = 0;
const wchar_t *Description = 0;
const wchar_t *Display_name = 0;
const wchar_t *Service_tier = 0;
const wchar_t *v_Email = 0;
const wchar_t *Slack = 0;
const wchar_t *Pagerduty = 0;
const wchar_t *Application = 0;
const wchar_t *Team = 0;
const wchar_t *id = 0;
const wchar_t *v_type = 0;
int j;
int count_j;
const wchar_t *instance_location = 0;
const wchar_t *keyword_location = 0;
const wchar_t *message = 0;
const wchar_t *name = 0;
const wchar_t *url = 0;
const wchar_t *strVal = 0;
int i = 0;
int count_i = jResp.SizeOfArray(L"data");
while (i < count_i) {
jResp.put_I(i);
Github_html_url = jResp.stringOf(L"data[i].attributes.meta.github-html-url");
Ingested_schema_version = jResp.stringOf(L"data[i].attributes.meta.ingested-schema-version");
Ingestion_source = jResp.stringOf(L"data[i].attributes.meta.ingestion-source");
Last_modified_time = jResp.stringOf(L"data[i].attributes.meta.last-modified-time");
Origin = jResp.stringOf(L"data[i].attributes.meta.origin");
Origin_detail = jResp.stringOf(L"data[i].attributes.meta.origin-detail");
Schema_version = jResp.stringOf(L"data[i].attributes.schema.schema-version");
Dd_service = jResp.stringOf(L"data[i].attributes.schema.info.dd-service");
Description = jResp.stringOf(L"data[i].attributes.schema.info.description");
Display_name = jResp.stringOf(L"data[i].attributes.schema.info.display-name");
Service_tier = jResp.stringOf(L"data[i].attributes.schema.info.service-tier");
v_Email = jResp.stringOf(L"data[i].attributes.schema.contact.email");
Slack = jResp.stringOf(L"data[i].attributes.schema.contact.slack");
Pagerduty = jResp.stringOf(L"data[i].attributes.schema.integrations.pagerduty");
Application = jResp.stringOf(L"data[i].attributes.schema.org.application");
Team = jResp.stringOf(L"data[i].attributes.schema.org.team");
id = jResp.stringOf(L"data[i].id");
v_type = jResp.stringOf(L"data[i].type");
j = 0;
count_j = jResp.SizeOfArray(L"data[i].attributes.meta.warnings");
while (j < count_j) {
jResp.put_J(j);
instance_location = jResp.stringOf(L"data[i].attributes.meta.warnings[j].instance-location");
keyword_location = jResp.stringOf(L"data[i].attributes.meta.warnings[j].keyword-location");
message = jResp.stringOf(L"data[i].attributes.meta.warnings[j].message");
j = j + 1;
}
j = 0;
count_j = jResp.SizeOfArray(L"data[i].attributes.schema.external-resources");
while (j < count_j) {
jResp.put_J(j);
name = jResp.stringOf(L"data[i].attributes.schema.external-resources[j].name");
v_type = jResp.stringOf(L"data[i].attributes.schema.external-resources[j].type");
url = jResp.stringOf(L"data[i].attributes.schema.external-resources[j].url");
j = j + 1;
}
j = 0;
count_j = jResp.SizeOfArray(L"data[i].attributes.schema.tags");
while (j < count_j) {
jResp.put_J(j);
strVal = jResp.stringOf(L"data[i].attributes.schema.tags[j]");
j = j + 1;
}
i = i + 1;
}
}
Curl Command
curl -G -d "page[size]=10"
-d "page[number]=0"
-d "schema_version=v1"
-H "Accept: application/json"
https://api.app.ddog-gov.com/api/v2/services/definitions
Postman Collection Item JSON
{
"name": "Get all service definitions",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
},
"description": "Get a list of all service definitions from the Datadog Service Catalog."
},
"response": [
{
"name": "OK",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"data\": [\n {\n \"attributes\": {\n \"meta\": {\n \"github-html-url\": \"<string>\",\n \"ingested-schema-version\": \"<string>\",\n \"ingestion-source\": \"<string>\",\n \"last-modified-time\": \"<string>\",\n \"origin\": \"<string>\",\n \"origin-detail\": \"<string>\",\n \"warnings\": [\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n },\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n },\n \"schema\": {\n \"schema-version\": \"v1\",\n \"info\": {\n \"dd-service\": \"<string>\",\n \"description\": \"<string>\",\n \"display-name\": \"<string>\",\n \"service-tier\": \"<string>\"\n },\n \"contact\": {\n \"email\": \"<email>\",\n \"slack\": \"<string>\"\n },\n \"extensions\": {\n \"ut_a\": {},\n \"consequat_894\": {}\n },\n \"external-resources\": [\n {\n \"name\": \"<string>\",\n \"type\": \"url\",\n \"url\": \"<string>\"\n },\n {\n \"name\": \"<string>\",\n \"type\": \"repo\",\n \"url\": \"<string>\"\n }\n ],\n \"integrations\": {\n \"pagerduty\": \"<string>\"\n },\n \"org\": {\n \"application\": \"<string>\",\n \"team\": \"<string>\"\n },\n \"tags\": [\n \"<string>\",\n \"<string>\"\n ]\n }\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n },\n {\n \"attributes\": {\n \"meta\": {\n \"github-html-url\": \"<string>\",\n \"ingested-schema-version\": \"<string>\",\n \"ingestion-source\": \"<string>\",\n \"last-modified-time\": \"<string>\",\n \"origin\": \"<string>\",\n \"origin-detail\": \"<string>\",\n \"warnings\": [\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n },\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n },\n \"schema\": {\n \"schema-version\": \"v1\",\n \"info\": {\n \"dd-service\": \"<string>\",\n \"description\": \"<string>\",\n \"display-name\": \"<string>\",\n \"service-tier\": \"<string>\"\n },\n \"contact\": {\n \"email\": \"<email>\",\n \"slack\": \"<string>\"\n },\n \"extensions\": {\n \"dolor1_9\": {},\n \"ea_7c\": {},\n \"consequat_a\": {}\n },\n \"external-resources\": [\n {\n \"name\": \"<string>\",\n \"type\": \"oncall\",\n \"url\": \"<string>\"\n },\n {\n \"name\": \"<string>\",\n \"type\": \"code\",\n \"url\": \"<string>\"\n }\n ],\n \"integrations\": {\n \"pagerduty\": \"<string>\"\n },\n \"org\": {\n \"application\": \"<string>\",\n \"team\": \"<string>\"\n },\n \"tags\": [\n \"<string>\",\n \"<string>\"\n ]\n }\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}"
},
{
"name": "Forbidden",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"<string>\",\n \"<string>\"\n ]\n}"
},
{
"name": "Too many requests",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
}
},
"status": "Too Many Requests",
"code": 429,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"<string>\",\n \"<string>\"\n ]\n}"
}
]
}